所以我正在处理来自JSON对象的返回值,并且我正在尝试返回其中一个键的值。所以我得到的JSON对象就是这个。
{"options":[{"picture":"http:\/\/example.com\/1.png", contact_id="1", name="Tom"}, {"picture":"http:\/\/example.com\/2.png", contact_id="2", name="Jess"}]}
现在我在Android应用程序中处理它,当我有一个名为TAG的最终静态字符串设置为选项时
private static final String TAG = "options";
我用来记录像这样的json值
Log.d("Friends name", jsn.getString(TAG));
我得到了第一个结果
{"options":[{"picture":"http:\/\/example.com\/1.png", contact_id="1", name="Tom"}, {"picture":"http:\/\/example.com\/2.png", contact_id="2", name="Jess"}]}
但是我只是试图访问这些名字而且我真的不知道该怎么做。
我尝试将TAG设置为options[0].name
以获取第一个名称,但它给了我一个错误
JSONException:没有值[0] .name
的值
我在这里有点迷失。
答案 0 :(得分:3)
如果您正在谈论JSON,那么您发布的字符串不是有效的JSON。
应该如下。
{
"options": [
{
"picture": "http://example.com/1.png",
"contact_id": "1",
"name": "Tom"
},
{
"picture": "http://example.com/2.png",
"contact_id": "2",
"name": "Jess"
}
]
}
然后在下面的代码段中写下来获取名称。
JSONObject android = new JSONObject(json_string);
JSONArray array = android.getJSONArray("options");
for (int i = 0; i < array.length(); i++) {
Log.i("name", array.getJSONObject(i).getString("name"));
}
答案 1 :(得分:0)
您需要创建JSONArray
并将值设为
JSONArray jsonArr = jsn.getJSONArray(TAG);
String name=jsonArr.get(0).getString("name");
答案 2 :(得分:0)
JSONObject object=new JSONObject(Your String...);
JsonArray jArray=object.getJsonArray("options");
for(int i=0;i<jArray.length;i++)
{
JSONObject jObject=jArray.getJSONObject(0);
String picture=jObject.getString("picture");
int id=JObject.getInt("contact_id");
String name=JObject.getString("name");
}