1

たくさん検索しても結果が出なかったので、ついにここでこの質問をすることにしました。

これは、このFacebookブログ投稿からの抜粋です:https ://developers.facebook.com/blog/post/592/

{
 . . .
      "story": "Dhiren Patel likes Marmot.",
      "story_tags": {
        "19": [
          {
            "id": 101961456910,
            "name": "Marmot",
            "offset": 19,
            "length": 6
          }
        ],
        "0": [
          {
            "id": 1207059,
            "name": "Dhiren Patel",
            "offset": 0,
            "length": 12
          }
        ]
      }, 
 . . .
}

リンクされたブログの上記の例を使用していますが、基本的に、FBGraphAPIを使用した場合のデータセットは同じです。これで、ネスティングなどをJSONObjects使用して解析する方法もわかりました。JSONArraysしかし、私はこの種のデータについては無知です。この例の190は、ネストされたoffsetタグによって決定され、投稿ごとに変わります。不明なJSONタグとコードを説明して、それらのタグ内の情報を取得するにはどうすればよいですか?

4

2 に答える 2

4

私が理解しているように、あなたが抱えている問題は、投稿などに応じて動的に生成されるキーを取得する方法がわからないことです(たとえば、json:19、0のように。このJSONを解析する方法は次のとおりです。

JSONObject mStoryTags = mMainObj.getJSONObject("story_tags");
if(mStoryTags != null){
    Iterator<Object> keys = mStoryTags.keys();
    while(keys.hasNext()){
        String id = String.valueOf(keys.next()); // This value represent 19
        JSONArray mTag = mStoryTags.getJSONArray(id);
        if(mTag != null){
            for(int i = 0; i < mTag.length();i++){
                JSONObject mElem = mTag.getJSONObject(i);
                if(mElem != null){
                    int objectId = mElem.getInt("id"); // value: 101961456910
                    // and etc.
                }
            }
        }
    }
}

これが同じ問題を抱えている人に役立つことを願っています!:)

于 2013-07-17T14:27:53.550 に答える
0

上記の「story_tags」スコープを表すJSONObjectがある場合は、次のコマンドを使用して個々のタグを反復処理できるはずです。

for (String key : storyTagsJSON.keys()) {
    JSONObject tagJSON = storyTagsJSON.optJSONObject(key);
    ...
于 2012-10-18T17:37:10.843 に答える