0

JSONファイルから作成されたNSArrayがあります。
アレイをコンソールに出力すると、次の出力が得られます。
クリックしてください

ファイルの最初の部分:

{
    result =     {
        "attribute_controlled_attached_particles" =         (
                        {
                "attach_to_rootbone" = 0;
                id = 1;
                name = "Partikel 1";
                system = "burningplayer_red";
            },
                        {
                "attach_to_rootbone" = 0;
                id = 2;
                name = "Fliegende Teile";
                system = "burningplayer_flyingbits";
            },
                        {
                "attach_to_rootbone" = 0;
                attachment = muzzle1;
                id = 3;
                name = "Nemesis-Explosion";
                system = "particle_nemesis_burst_blue";
            },
                        {
                "attach_to_rootbone" = 0;
                id = 4;
                name = "Community-Glitzer";
                system = "community_sparkle";
            },
                        {
                "attach_to_rootbone" = 0;
                attachment = halopoint1;
                id = 5;
                name = Heiligenschein;
                system = halopoint;
            },
                        {
                "attach_to_rootbone" = 0;
                id = 6;
                name = "Gr\U00fcnes Konfetti";
                system = "superrare_confetti_green";
            },
                        {
                "attach_to_rootbone" = 0;
                id = 7;
                name = "Lila Konfetti";
                system = "superrare_confetti_purple";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 8;
                name = "Spukende Geister";
                system = "superrare_ghosts";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 9;
                name = "Gr\U00fcne Energieladung";
                system = "superrare_greenenergy";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 10;
                name = "Lila Energieladung";
                system = "superrare_purpleenergy";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 11;
                name = "Kreisendes TF-Logo";
                system = "superrare_circling_tf";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 12;
                name = Fliegenschwarm;
                system = "superrare_flies";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 13;
                name = "Brennende Flammen";
                system = "superrare_burning1";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = unusual;
                id = 14;
                name = "Sengende Flammen";
                system = "superrare_burning2";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 15;
                name = "Gl\U00fchendes Plasma";
                system = "superrare_plasma1";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 16;
                name = "Lebendiges Plasma";
                system = "superrare_plasma2";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 17;
                name = Sonnenstrahlen;
                system = "superrare_beams1";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 18;
                name = "Kreisendes Friedenszeichen";
                system = "superrare_circling_peacesign";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 19;
                name = "Kreisendes Herz";
                system = "superrare_circling_heart";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 20;
                name = "Karten-Briefmarken";
                system = "stamp_spin";
            },
                        {
                "attach_to_rootbone" = 0;
                attachment = "cig_drg_smoke";
                id = 28;
                name = "Eleganter Rauch";
                system = "drg_pipe_smoke";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 29;
                name = "St\U00fcrmischer Sturm";
                system = "unusual_storm";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 30;
                name = "Eisiger Sturm";
                system = "unusual_blizzard";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 31;
                name = "Muttern & Bolzen";
                system = "unusual_orbit_nutsnbolts";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 32;
                name = "Kreisende Planeten";
                system = "unusual_orbit_planets";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 33;
                name = "Kreisendes Feuer";
                system = "unusual_orbit_fire";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 34;
                name = Blubbern;
                system = "unusual_bubbles";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 35;
                name = Rauchen;
                system = "unusual_smoking";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 36;
                name = Dampfen;
                system = "unusual_steaming";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 37;
                name = "Brennende Laterne";
                system = "unusual_orbit_jack_flaming";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 38;
                name = "Bew\U00f6lkter Mond";
                system = "unusual_fullmoon_cloudy";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 39;
                name = "Blubbernder Kessel";
                system = "unusual_bubbles_green";
            },
                        {
                "attach_to_rootbone" = 1;
                id = 40;
                name = "Schauriges, kreisendes Feuer";
                system = "unusual_orbit_fire_dark";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 43;
                name = Messersturm;
                system = "unusual_storm_knives";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 44;
                name = "Nebliger Sch\U00e4del";
                system = "unusual_skull_misty";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 45;
                name = Herbstmond;
                system = "unusual_fullmoon_cloudy_green";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 46;
                name = "Es ist ein Geheimnis f\U00fcr jeden";
                system = "unusual_fullmoon_cloudy_secret";
            },
                        {
                "attach_to_rootbone" = 1;
                attachment = muzzle;
                id = 47;
                name = "St\U00fcrmische 13. Stunde";
                system = "unusual_storm_spooky";
            }
        );
        attributes =         (
                        {
                "attribute_class" = "mult_dmg";
                defindex = 1;
                "description_format" = "value_is_percentage";
                "description_string" = "%s1%\U00a0geringerer Schaden";
                "effect_type" = negative;
                hidden = 0;
                "max_value" = "0.85";
                "min_value" = "0.95";
                name = "damage penalty";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_dmg";
                defindex = 2;
                "description_format" = "value_is_percentage";
                "description_string" = "+%s1%\U00a0Schadensbonus";
                "effect_type" = positive;
                hidden = 0;
                "max_value" = "1.1";
                "min_value" = "1.05";
                name = "damage bonus";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_clipsize";
                defindex = 3;
                "description_format" = "value_is_percentage";
                "description_string" = "%s1%\U00a0Magazingr\U00f6\U00dfe";
                "effect_type" = negative;
                hidden = 0;
                "max_value" = "0.75";
                "min_value" = "0.9";
                name = "clip size penalty";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_clipsize";
                defindex = 4;
                "description_format" = "value_is_percentage";
                "description_string" = "+%s1%\U00a0Magazingr\U00f6\U00dfe";
                "effect_type" = positive;
                hidden = 0;
                "max_value" = "1.1";
                "min_value" = "1.05";
                name = "clip size bonus";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_postfiredelay";
                defindex = 5;
                "description_format" = "value_is_inverted_percentage";
                "description_string" = "%s1%\U00a0niedrigere Schussfrequenz";
                "effect_type" = negative;
                hidden = 0;
                "max_value" = "1.25";
                "min_value" = "1.05";
                name = "fire rate penalty";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_postfiredelay";
                defindex = 6;
                "description_format" = "value_is_inverted_percentage";
                "description_string" = "+%s1%\U00a0h\U00f6here Schussfrequenz";
                "effect_type" = positive;
                hidden = 0;
                "max_value" = "0.9";
                "min_value" = "0.95";
                name = "fire rate bonus";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_medigun_healrate";
                defindex = 7;
                "description_format" = "value_is_percentage";
                "description_string" = "%s1%\U00a0Heilungsrate";
                "effect_type" = negative;
                hidden = 0;
                "max_value" = "0.8";
                "min_value" = "0.95";
                name = "heal rate penalty";
                "stored_as_integer" = 0;
            },
                        {
                "attribute_class" = "mult_medigun_healrate";
                defindex = 8;
                "description_format" = "value_is_percentage";
                "description_string" = "+%s1%\U00a0Heilungsrate";
                "effect_type" = positive;
                hidden = 0;
                "max_value" = "1.15";
                "min_value" = "1.05";
                name = "heal rate bonus";
                "stored_as_integer" = 0;
            },

私の質問は:インデックスでアイテムの名前を取得するにはどうすればよいですか?

私は試した

[[[[news objectAtIndex:0]objectForKey:@"items"]objectAtIndex:2] objectForKey:@"name"];

ニュースはデータを含む配列です!

あなたがティムを助けることができることを願っています

4

3 に答える 3

0

辞書のいくつかの配列で構成される辞書があるようです。このようなものが必要だと思います...(編集:コメントに記載されているように、結果から選択できるものがいくつかあるように見えるため、名前を取得する必要がある辞書の配列によって異なります)。

NSArray *array = [resultDictionary objectForKey:@"attribute_controlled_attached_particles"];

for (NSDictionary *aDictionary in array){
    NSString *name = [aDictionary objectForKey:@"name"];
   // do what you want with the string...
   // could be useful if you for instance need to make an array of all the names
}

またはもちろん:

NSString *someString = [[array objectAtIndex:3] objectForKey:@"name"];
于 2013-02-02T12:59:02.223 に答える
0

別のディクショナリを含むディクショナリを取得したので (賢明な考えではありません)、objectForKey: セレクターを使用してその中にディクショナリを取得する必要があります。ディクショナリのキーと値を取得できれば、N 回実行しても問題はありません。

[] 演算子を使用すると、配列/辞書の値にアクセスでき、 objectAtIndex:/valueForKey: のように機能します。方法は次のとおりです。

NSDictionary* result= json[@"result"];
NSArray* acabArray= result[@"attribute_controlled_attached_particles"];
for(NSDictionary* acabDict in acabArray)
{
    NSNumber* num= acabDict[@"attach_to_rootbone"];
    NSString* name= acabDict[@"name"];
    // Obtain also the other key-values in a similar way
    // Do what you want with these values, I suggest to build a custom
    // object to hold all these values, and put every object in a mutable array.
}
于 2013-02-02T13:47:22.840 に答える
0

("result" によってキーが設定された) を含む( NSDictionary" attribute_controller_attached_pa​​rticles" によってキーが設定された) があります。この包含配列を取得するには、次のことを行う必要があります。NSDictionaryNSArray

NSArray *resultArray = [[jsonDictionary objectForKey:@"result"] objectForKey:@"attribute_controlled_attached_particles"];

の内部にはresultArray、ニュース項目を表す辞書の順序付きリストがあります。したがって、最初のインデックスの「名前」文字列を取得するには、次のようにします。

NSDictionary *itemDictionary = [resultArray objectAtIndex:0];
NSString *name = [itemDictionary objectForKey:@"name"];

すべての項目を列挙するには、resultArray を反復処理する必要があります。

于 2013-02-02T13:48:26.623 に答える