我的字符串包含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
答案 0 :(得分:0)
如果它以[它的数组开头,请尝试:
JSONArray json = new JSONArray(result);
答案 1 :(得分:0)
使用Gson来做到这一点。
由于方括号[],Json响应是你知道的数组。
使用字段USER_ID和PROJECT_BY_DETAILS创建映射对象(java类)。
public class yourClass(){ public String USER_ID; public String PROJECT_BY_DETAILS; }
像这样创建一个Type数组。
final Type typeYourObject = new TypeToken>(){}。getType();
定义您的私人列表
列出你的列表;
使用Gson,您将该数组转换为类似的列表
yourList = gson.fromJson(yourJson,typeYourObject);
稍后您可以随意执行任何操作。此外,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();
}
}