我有一个JSON字符串,U想要获取名称并添加字段。我试过使用几个库并遵循许多教程,但是没有成功。
我的问题是我有几个阵列......
inputLine =
{"posts":[
{"post":{
"name":"name1",
"add":"add1"}},
{"post":{
"name":"name2",
"add":"add2"}}
]
}
JSONObject obj_posts = new JSONObject(inputLine);
JSONArray menuitemArray = obj_posts.getJSONArray("posts");
JSONObject obj_post = new JSONObject(menuitemArray.getJSONObject(0).toString());
JSONObject menuitem = obj_post.getJSONObject("post");
JSONArray obj_post1 = menuitem.names();
此时我只能访问密钥名称并添加,而不是值。
答案 0 :(得分:1)
JSONObject obj_posts = new JSONObject(inputLine);
JSONArray menuitemArray = obj_posts.getJSONArray("posts");
JSONObject obj_post = menuitemArray.getJSONObject(0);
JSONObject menuitem = obj_post.getJSONObject("post");
String postName = menuItem.getString("name");
String postAdd = menuItem.getString("add");
答案 1 :(得分:0)
以下代码应该有效:
System.out.println(menuitem.get(obj_post1.getString(0)));//Output name1
System.out.println(menuitem.get(obj_post1.getString(1)));//Output add1
答案 2 :(得分:0)
您需要导入“org.json.JSONArray”,“org.json.JSONException”,“org.json.JSONObject”
还抛出JSONException。
String obj_post1_name = "";
String obj_post1_add = "";
String obj_post2_name = "";
String obj_post2_add = "";
String inputLine =
" {\"posts\":[{\"post\":{\"name\":\"name1\",\"add\":\"add1\"}},{\"post\":{\"name\":\"name2\",\"add\":\"add2\"}}]}";
JSONObject obj_posts = new JSONObject(inputLine);
JSONArray menuitemArray = obj_posts.getJSONArray("posts");
JSONObject obj_post1 =(menuitemArray.getJSONObject(0));
JSONObject obj_post2 =(menuitemArray.getJSONObject(1));
JSONObject menuitem = obj_post1.getJSONObject("post");
JSONObject menuitem2 = obj_post2.getJSONObject("post");
obj_post1_name= menuitem.getString("name");
obj_post1_add= menuitem.getString("add");
obj_post2_name= menuitem2.getString("name");
obj_post2_add= menuitem2.getString("add");
或者你可以在之后使用循环:
JSONArray menuitemArray = obj_posts.getJSONArray("posts");
JSONObject obj_posts;
JSONObject menuitem;
for(int i=0;i<menuitemArray.length();i++){
obj_posts= menuitemArray.getJSONObject(i);
menuitem = obj_post1.getJSONObject("post");
menuitem.getString("name");
menuitem.getString("add");
}