0

json jason パーサーを使用しますが、複数のタグ値を arraylist に追加しておらず、Actor を使用して $t タグを arraylist に解析したいと考えています。

{
"media$group":{
"media$credit":[
{
"$t":"Murison Dunn",
"role":"Writer",
"scheme":"urn:ebu"
},
{
"$t":"Randolph Scott",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Forrest Tucker",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"name":"Mala Powers",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"J. Carrol Naish",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Edgar Buchanan",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"name":"Myron Healey",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Howard Petrie",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"name":"Ray Teal",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"William Forrest",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Denver Pyle",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Trevor Bardette",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Kenneth Tobey",
"role":"Actor",
"scheme":"urn:ebu"
}
]
},

{
"media$group":{
"media$credit":[
{
"$t":"Murison",
"role":"Writer",
"scheme":"urn:ebu"
},
{
"$t":"Scott",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Tucker",
"role":"Actor",
"scheme":"urn:ebu"
}
{
"name":"Powers",
"role":"Actor",
"scheme":"urn:ebu"
}
]
},

{
"media$group":{
"media$credit":[
{
"$t":"Dunn",
"role":"Writer",
"scheme":"urn:ebu"
},
{
"$t":"J.Naish",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Buchanan",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Healey",
"role":"Actor",
"scheme":"urn:ebu"
},
{
"$t":"Petrie",
"role":"Actor",
"scheme":"urn:ebu"
}
]
}
}

ただし、私の主な問題は、$t タグから arraylist に複数の項目を取得する必要があることです。私のコードは次のとおりです。

JSONObject jsonmediagrop=videoObject.getJSONObject("media$group");
 JSONArray itemsmediarole = jsonmediagrop.getJSONArray("media$credit");
            for(int l=0;l<itemsmediarole.length();l++){
                JSONObject Objectrole = itemsmediarole.getJSONObject(l);

                strrole=Objectrole.getString("Role");
                Log.v("Role", strrole);

                if(strrole.equals("Actor"))
                { 

                     stractor=Objectrole.getString("$t") + "," + stractor;
                     Log.v("stractor", stractor);
                     maprole.put("$t", stractor);
                     myrolelist.add(maprole);
                }

            }

myrolelist - これはアレイリストです。maprole - これはハッシュマップです。どんな助けでも大歓迎です。

4

2 に答える 2

2

Okay after reading your comment in the other answer, I decided to help you.
I had lots of problems parsing mine too. Went through lots of researches
In my code I was trying to get the rstp url links.
I hope you can look at it and solve your problem.
This is my working code

    try {
        JSONObject obj = new JSONObject(json);
        String entry = obj.getString("entry");
        JSONObject enObj = new JSONObject(entry);
        String group = enObj.getString("media$group");
        JSONObject grObj = new JSONObject(group);
        String content = grObj.getString("media$content");
        JSONArray array = grObj.getJSONArray("media$content");
        for(int j=0; j<array.length(); j++){
            JSONObject thumbs = array.getJSONObject(j);
            String url = thumbs.getString("url");
            urls[j] = url;
            Log.d(TAG, url);
            //data.setThumbUrl(thumbUrl);
        }


        Log.v(TAG, content);
    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }

For you this may do the trick:

   try {
        JSONObject obj = new JSONObject(json);
        String entry = obj.getString("entry");
        JSONObject enObj = new JSONObject(entry);
        String group = enObj.getString("media$group");
        JSONObject grObj = new JSONObject(group);
        JSONArray array = grObj.getJSONArray("media$credit");
        for(int j=0; j<array.length(); j++){
            JSONObject credits = array.getJSONObject(j);
            String role = credits.getString("role");
            Log.d(TAG, role);
        }

    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }
于 2012-12-27T07:14:06.337 に答える
0

JSON が無効です。JSON リストを下にスクロールすると、同じ名前の配列が定義されています。そのため、キー「役割」の複数の値を取っています。

于 2012-12-27T06:52:32.970 に答える