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