0

私のアプリケーションでは、JSON URL から値を取得しようとしています。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の値を解析するにはどうすればよいか教えてください。

4

2 に答える 2

2

試す

if(!message.equals("false"))

それ以外の

if(message != "false")

もう1つ、サーバー側のコードを確認してください

ゼロタグの場合は名前tag_user付きJson Objectです。tagstags)内は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」を返します`

于 2012-10-15T17:53:31.447 に答える
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

于 2012-10-15T17:55:02.343 に答える