Java 从字符串创建Json对象
我试图从服务器上得到一个答案,并将其转换到Java 从字符串创建Json对象,java,android,json,web-services,Java,Android,Json,Web Services,我试图从服务器上得到一个答案,并将其转换到JSONObject。 现在我有了这个代码 private JSONObject sendData(ArrayList<NameValuePair> data, String actionname) { // 1) Connect via HTTP. 2) Encode data. 3) Send data. try { HttpClient httpclient = new DefaultHtt
JSONObject
。
现在我有了这个代码
private JSONObject sendData(ArrayList<NameValuePair> data, String actionname)
{
// 1) Connect via HTTP. 2) Encode data. 3) Send data.
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost(actionname);
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response = httpclient.execute(httppost);
// Log.i("postData", response.getStatusLine().toString());
InputStream is = response.getEntity().getContent();
String result = convertStreamToString(is);
// JSONArray jArr = new JSONArray (result);
// int eventID = jArr.getJSONObject(0).getInt("eventID");
JSONObject jObject = new JSONObject(result);
return jObject;
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
return null;
}
私有JSONObject sendData(ArrayList数据、字符串actionname)
{
//1)通过HTTP连接。2)编码数据。3)发送数据。
尝试
{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新
HttpPost(actionname);
setEntity(新的UrlEncodedFormEntity(数据));
HttpResponse response=httpclient.execute(httppost);
//Log.i(“postData”,response.getStatusLine().toString());
InputStream is=response.getEntity().getContent();
字符串结果=convertStreamToString(is);
//JSONArray jArr=新JSONArray(结果);
//int-eventID=jArr.getJSONObject(0.getInt(“eventID”);
JSONObject jObject=新JSONObject(结果);
返回作业对象;
}
捕获(例外e)
{
Log.e(“Log_标记”,“错误:+e.toString());
}
返回null;
}
在result
字符串变量中
{“状态”:{“代码”:404,“文本”:“未找到”},“内容”:“用户”
身份验证失败“}
但是在代码字符串上
JSONObject jObject=newjsonobject(result)代码>-返回null
=((我试图创建JSONArray
但它返回了一个扩展名,我可以从JSONObject
创建JSONArray
,从result
创建JSONArray
,如下所示:
JSONArray finalResult = new JSONArray(new JSONTokener(result));
一旦您拥有了JSONArray
,您就可以通过循环获取详细信息,如下所示:
for (int i = 0; i < finalResult.length(); i++) {
JSONObject message = finalResult.getJSONObject(i);
String content= message.getString("content");
...
...
}
for(int i=0;i
从结果
可以创建JSONArray
如下:
JSONArray finalResult = new JSONArray(new JSONTokener(result));
一旦您拥有了JSONArray
,您就可以通过循环获取详细信息,如下所示:
for (int i = 0; i < finalResult.length(); i++) {
JSONObject message = finalResult.getJSONObject(i);
String content= message.getString("content");
...
...
}
for(int i=0;i
我解决了这个问题,但我不明白为什么会这样。可能是我在OOP方面做得不太好。所以我创建了JSONObject jObject作为类JSONHandler的一个属性,它有sendData方法。然后它就成了工作。如果有人解释为什么会这样,我会很高兴的。我解决了这个问题,但我不明白为什么会这样。可能是我做得不太好n OOP.所以我创建了JSONObject jObject作为类JSONHandler的一个属性,该类具有sendData方法。它开始工作了。如果有人解释为什么会这样做,我会很高兴。在JSONObject jObject=new JSONObject(结果)行上方一定有错误;jsut在日志中打印结果并检查……….您必须在第JSONObject jObject=new JSONObject(结果)行上方有错误;jsut在日志中打印结果并检查……….org.json.JSONException:Value{“content”:“status”:{“text”:“Not Found”,“code”:404}无法将类型为org.json.JSONObject的转换为JSONArray-Take thisorg.json.JSONException:Value{“content”:“status”:{“text”:“Not Found”,“code”:404}无法将类型为org.json.JSONObject的转换为JSONArray-Take this