我想为BlackBerry创建一个简单的json解析器进行测试。我找到了this示例,并按如下方式实现了我的代码
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());
}
}
}
但我不能为了我的目的修改它。任何人都可以帮我修改此代码示例以访问this json。我对这个学科领域非常陌生。
提前谢谢你。
答案 0 :(得分: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);