1

MySQL の結果セットを PHP で JSON 形式で出力し、iOS で読み取ろうとしています。

これは私のJSON文字列です:

[{"partnerid":"1","code":"SUMU6003","partnerName":"Company name","street":"Some Street 5323","zipCode":"8732","city":"Berlin","languages":"English","workers":"Name 1, Name 2","lineup":"Kids"},{"partnerid":"2","code":"DEMO8884","partnerName":"Partner 2","street":"Third street 2","zipCode":"383838","city":"Berlin","languages":"Greek","workers":"Petra","lineup":"Kids"}]

このメソッドでは、次を取得しNSDictionaryます。

#pragma mark - ServiceConnectorDelegate -

-(void)requestReturnedData:(NSData *)data { 
    NSDictionary *dictionary = [NSDictionary dictionaryWithJSONData:data];
    # process dictionary and grep strings from json-string
    # ...
}

ループ内のさまざまな結果セットにアクセスする方法を教えてください。各キーに個別にアクセスしたい。

次のように出力NSDictionaryされるため、 にデータが含まれていることがわかります。NSLog(@"%@",dictionary);

2012-12-20 19:13:20.661 myapp[576:907] (
        {
        city = Berlin;
        code = SUMU6003;
        languages = English;
        lineup = Kids;
        partnerName = "Company name";
        partnerid = 1;
        street = "Some Street 5323";
        workers = "Name 1, Name 2";
        zipCode = 8732;
    },
        {
        city = Berlin;
        code = DEMO8884;
        languages = Greek;
        lineup = Kids;
        partnerName = "Partner 2";
        partnerid = 2;
        street = "Third street 2";
        workers = Petra;
        zipCode = 383838;
    }
)

助けてくれてありがとう。

4

3 に答える 3

2

ここで内観が役立つ場合があります。例えば ​​NSLog(@"dictionary is of type: %@", [dictionary class]);

あなたの出力に基づいていると私が言う理由は、辞書は実際には2つのNSDictionariesを含む配列であるようです。その場合は、次のようにします。

for (NSDictionary *actualDictionary in dictionary<this is really an array>)
{
  NSString *myStringValue = [actualDictionary objectForKey:@"city"];
  // etc...
}

ただし、最初に実際に扱っているデータ型を見つける必要があります。

于 2012-12-20T18:22:03.613 に答える
0

応答ディクショナリにはディクショナリの配列が含まれているため、ディクショナリを高速に列挙してディクショナリ値を実行し、それぞれをディクショナリとしてキャストして、次のようにその値を取得できます。

-(void)requestReturnedData:(NSData *)data { 
    NSDictionary *dictionary = [NSDictionary dictionaryWithJSONData:data];
    # process dictionary and grep strings from json-string
    for(id item in dictionary ) 
    {
        NSDictionary *dic = (NSDictionary *)item;
        NSLog(@"%@",[dic objectForKey:@"city"]);
        NSLog(@"%@",[dic objectForKey:@"code"]);
        ......
    }
 }
于 2012-12-20T20:46:00.227 に答える
0

これを行う:

#import <objc/runtime.h>

NSLog(@"The class name is %s", object_getClassName(dictionary);

于 2012-12-20T18:23:36.540 に答える