2016-09-08 5 views
0

私は2つのJson文字列を持っています。2つのjsonを目的のcの1つに結合します

私はこのコードを試してみましたが、出力は、

コードshowinw間違って出力されます:

NSString* json1 = [[NSString alloc] initWithData:jsonData1 encoding:NSUTF8StringEncoding]; 
NSString* json2 = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding]; 

json1 = {"foo":"bar","bar":"foo","name":"craig"} 
json2 = {"foo":"baz","bar":"fob","name":"george"} 

NSArray *jsonArr = @[json1, json2]; 
NSLog(@"jsonArr %@",jsonArr); 

出力:

(
    "{\n \"foo\" : \"bar\",\n \"bar\" : \"foo\",\n \"name\" : \"craig\ \n}", 
    "{\n \"foo\" : \"baz\",\n \"bar\" : \"fob\",\n \"name\" : \"george\ \n}" 
) 

私が作っています間違い? あなたは直接文字列にジェイソンを変換することはできません助けとadavance

+1

期待どおりの結果はありますか? –

+0

2文字列を普通に組み合わせてみませんか? '' NSString stringWithFormat:@ "%@、%@"、json1、json2] ' –

+0

有効な結合jsonを表示する必要があります –

答えて

0

で感謝してください。 jsonData1とjsonData2は辞書である場合に次の操作を行い、JSON配列は、カンマ区切りで文字列を結合するようにするには次の2つの辞書

NSString *json1 = @"{\"foo\":\"bar\",\"bar\":\"foo\",\"name\":\"craig\"}"; 
NSString *json2 = @"{\"foo\":\"baz\",\"bar\":\"fob\",\"name\":\"george\"}"; 

を表す2つのJSON文字列を持っていると仮定するとNSDictionaryの

NSString *json[email protected]""; 
    NSString *key; 
    for(key in [jsonData1 allKeys]) 
    { 
     jsonString = [jsonString stringByAppendingFormat:@"%@=%@,",key,[jsonData1 objectForKey:key]]; 
    } 

    for(key in [jsonData2 allKeys]) 
    { 
     jsonString = [jsonString stringByAppendingFormat:@"%@=%@,",key,[jsonData2 objectForKey:key]]; 
    } 
    jsonString = [jsonString substringToIndex:[jsonString length] - 1]; 
0

それらをひそかない場合括弧で囲んでください。[]

NSString *resultJSONArrayString = [NSString stringWithFormat:@"[%@]", [@[json1, json2] componentsJoinedByString:@","]]; 
// [{"foo":"bar","bar":"foo","name":"craig"},{"foo":"baz","bar":"fob","name":"george"}] 
関連する問題