如何从android中的json字符串创建JSONObject和JSON ARRAy?

时间:2015-07-03 15:01:41

标签: android json jsonobject

我的字符串包含json

result=[{"USER_ID":83,"PROJECT_BY_DETAILS":"An adaptation of a nursery rhyme into a dramatic film"},{"USER_ID":88,"PROJECT_BY_DETAILS":"Test - over ye mountain blue "}]

如何从此字符串

创建JSONOBject和JSONarray

我使用了这段代码

JSONObject json =new JSONObject(result);
            //Get the element that holds the earthquakes ( JSONArray )
            JSONArray earthquakes = json.getJSONArray("");

我收到了错误

Error parsing data org.json.JSONException: Value [{"USER_ID":83,"PRO

4 个答案:

答案 0 :(得分:0)

如果它以[它的数组开头,请​​尝试:

JSONArray json = new JSONArray(result);

Difference between JSONObject and JSONArray

答案 1 :(得分:0)

使用Gson来做到这一点。

由于方括号[],Json响应是你知道的数组。

  1. 使用字段USER_ID和PROJECT_BY_DETAILS创建映射对象(java类)。

    public class yourClass(){     public String USER_ID;     public String PROJECT_BY_DETAILS; }

  2. 像这样创建一个Type数组。

    final Type typeYourObject = new TypeToken>(){}。getType();

  3. 定义您的私人列表

    列出你的列表;

  4. 使用Gson,您将该数组转换为类似的列表

    yourList = gson.fromJson(yourJson,typeYourObject);

  5. 稍后您可以随意执行任何操作。此外,Gson将其转换回JsonArray或创建一个风俗JsonObject。

答案 2 :(得分:0)

将此代码用于JsonArray:

try {
                        JSONArray json = new JSONArray(YOUR_JSON_STRING);
                         for (int i = 0; i < json.length(); i++) {

                            JSONObject jsonDATA = json.getJSONObject(i);

                            String jsonid = jsonDATA.getInt("USER_ID");
                            String jsondetails = jsonDATA.getString("PROJECT_BY_DETAILS");
                            }
                             } catch (JSONException e) {
                        return null;
                    }

答案 3 :(得分:0)

根据我的理解,JSON对象看起来像这样,

{ "RESULT":[ { "USER_ID":83, "PROJECT_BY_DETAILS":"An adaptation of a nursery rhyme into a dramatic film" }, { "USER_ID":88, "PROJECT_BY_DETAILS":"Test - over ye mountain blue " } ] }

您正在将此转换为String,并且您希望重新构造JSON对象。 android端的解码函数就是这个,

void jsonDecode(String jsonResponse) { try { JSONObject jsonRootObject = new JSONObject(jsonResponse); JSONArray jData = jsonRootObject.getJSONArray("RESULT"); for(int i = 0; i < jData.length(); ++i) { JSONObject jObj = jData.getJSONObject(i); String userID = jObj.optString("USER_ID"); String projectDetails = jObj.optString("PROJECT_BY_DETAILS"); Toast.makeText(context, userID + " -- " + projectDetails,0).show(); } } catch(JSONException e) { e.printStackTrace(); } }