2013-05-10 84 views
-1

我想为BlackBerry测试创建一个简单的json解析器。我发现this例子,并实现我的代码如下黑莓json解析器

import java.io.ByteArrayOutputStream; 
import java.io.InputStream; 
import java.util.Vector; 
import javax.microedition.io.Connector; 
import javax.microedition.io.HttpConnection; 
import org.json.me.JSONArray; 
import org.json.me.JSONObject; 
import net.rim.device.api.ui.component.Dialog; 
import net.rim.device.api.ui.container.MainScreen; 


public final class MyScreen extends MainScreen 
{ 
HttpConnection conn = null; 
InputStream in = null; 
String _response = null; 
Vector _adBeanVector=null; 
int code; 
public MyScreen() 
{    
    setTitle("MyTitle"); 
    try 
    { 
    StringBuffer url=new StringBuffer().append("http://codeincloud.tk/json_android_example.php"); 
    conn = (HttpConnection) Connector.open(url.toString(), Connector.READ); 
    conn.setRequestMethod(HttpConnection.GET); 

    code = conn.getResponseCode(); 
    if (code == HttpConnection.HTTP_OK) { 
    in = conn.openInputStream(); 
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    byte[] buffer = new byte[in.available()]; 
    int len = 0; 
    while (-1 != (len = in.read(buffer))) { 
    out.write(buffer); 
    } 
    out.flush(); 
    _response = new String(out.toByteArray()); 
    JSONObject resObject=new JSONObject(_response); 
    String _key =resObject.getString("Insert Json Key"); 

    _adBeanVector = new Vector(); 
    JSONArray newsArray = resObject.getJSONArray("Insert Json Array Key"); 
    if(newsArray.length() > 0) 
    { 
    for (int i=0 ;i < newsArray.length() ; i++) 
    { 
    Vector _adElementsVector=new Vector(); 
    JSONObject newsObj = newsArray.getJSONObject(i); 
    _adElementsVector.addElement(newsObj.getString("message")); 
    //_adElementsVector.addElement(newsObj.getString("Insert Json Array Element Key2")); 
    _adBeanVector.addElement(_adElementsVector); 
    } 
    } 
    if (out != null){ 
    out.close(); 
    } 
    if (in != null){ 
    in.close(); 
    } 
    if (conn != null){ 
    conn.close(); 
    } 
    } 

    } catch (Exception e) 
    { 
    Dialog.alert(e.getMessage()); 
    } 
} 
} 

,但我不能修改我的目的。任何人都可以帮助我修改此代码示例以访问json的this。我对这个主题领域非常陌生。

预先感谢您。

+1

什么是 “插入的Json钥匙”? – Signare 2013-05-10 05:06:25

回答

2

试试这个 -

JSONObject resObject=new JSONObject(_response); 
String _name=resObject.getString("name"); //This will get the result as Froyo 
String _version=resObject.getString("version"); //This will get the result as Android 2.2 
Dialo.alert("Name : "+_name+" and Version : "+_version); 
+0

可以请你解释一下 的这条线是什么JSONArray newsArray = resObject.getJSONArray(“Insert Json Array Key”); – Grant 2013-05-21 11:01:34

+0

这一行将获得键=“插入Json数组键”的json数组 – Signare 2013-05-21 11:20:28