在我的应用程序中,我试图从JSON URL中检索值。在URL中有一个点,我无法解析值..我已经尝试了很多找到解决方案,但我没有任何..
在网址中,我要解析的值是 tag_users 的值......
我正在附加我试图解析值的代码,所以请帮我找到解决方案......
/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////
String url = "http://flutterr.pnf-sites.info/api/messageshow/2";
JsonParser jParser = new JsonParser();
JSONObject json = jParser.getJSONfromUrl(url);
try
{
JSONArray messageshow = json.getJSONArray("messageshow");
userList.clear();
for(int i=0; i<messageshow.length();i++)
{
JSONObject msg = messageshow.getJSONObject(i);
message_id = msg.getString("message_id");
message = msg.getString("message");
message_pic = msg.getString("message_pic");
uid = msg.getString("uid");
created = msg.getString("created");
username = msg.getString("username");
first_name = msg.getString("first_name");
last_name = msg.getString("last_name");
profile_pic = msg.getString("profile_pic");
total_likes = msg.getString("total_likes");
JSONObject tag_user = msg.getJSONObject("tag_user");
message = tag_user.getJSONObject("tags").getString("message");
if(message != "false")
tag_uid = tag_user.getJSONObject("tags").getString("tag_uid");
Log.v("uid", tag_uid);
HashMap<String, String> map = new HashMap<String, String>();
map.put("message_id", message_id);
map.put("message", message);
map.put("message_pic", message_pic);
map.put("uid", uid);
map.put("created", created);
map.put("username", username);
map.put("first_name", first_name);
map.put("last_name", last_name);
map.put("profile_pic", profile_pic);
map.put("total_likes", total_likes);
userList.add(map);
}
}
catch(JSONException e)
{
Log.e("Error", e.toString());
}
/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////
请帮助我告诉我如何解析 tag_uid,tag_uname,tag_fname和tag_lname 的值......
答案 0 :(得分:2)
尝试
if(!message.equals("false"))
而不是
if(message != "false")
还有一件事要检查服务器端代码
tag_user
中的如果标签为零,则Json Object
名称为tags
。在结果的情况下,(tags
)是JsonArray
。
修改强>
如果Json看起来像这样
"tag_user": {
"tags": [
{
"tag_uid": "1",
"tag_fname": "abhishek",
"tag_lname": "dhiman",
"tag_uname": "abhishek"
}
]"message": "true" //here true or false to check "tags" array
}
然后在代码中你可以得到像
message = tag_user.getJSONObject("message");
if(!message.equals("false"))
tag_uid = tag_user.getJSONArray("tags").getJSONObject(0).getString("tag_uid");
//将返回第一个标签的“tag_uid”
答案 1 :(得分:0)
tag_user是一个包含数组的JSON对象:
"tag_user":{"tags":[{"tag_uid":"1","tag_fname":"abhishek","tag_lname":"dhiman","tag_uname":"abhishek"},{"tag_uid":"4","tag_fname":"tttttt","tag_lname":"tttttt","tag_uname":"tttttt"},{"tag_uid":"3","tag_fname":"qqqqqq","tag_lname":"qqqqqq","tag_uname":"qqqqqq"},{"tag_uid":"13","tag_fname":"Firstname","tag_lname":"Lastname","tag_uname":"Username4"}]}
你应该试试
getJSONArray("tags")
在tag_user对象
上如果您熟悉Sax解析,请尝试使用Gson项目中的JsonReader: https://sites.google.com/site/gson/streaming