0

私のアプリケーションでは、Json を使用しました。これは、アプリケーションでの JSON 応答です。

This is my Response:
[
    {
    "response": "Success",
    "errorMsg": "",
    "userId": "1",
    "userCompany": "xxxyy",
    "userName": "sham",
    "userAddress": "chennai",
    "userCity": "xxxxx",
    "userMobile": "xxxx",
    "userEmail": "xxx"
},
{
    "response": "Success",
    "errorMsg": "",
    "productImage": "http://www.iii.jpg",
    "productDescription": "Loaded box on pallets - Bart's package",
    "productCost": "10",
    "productBoxWeight": "10.0"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "1.4",
    "transportCountry": "Colombia",
    "transportPort": "Havana"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "0.7",
    "transportCountry": "Brazil",
    "transportPort": "Santos"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "0.9",
    "transportCountry": "South Africa",
    "transportPort": "Durban"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "0.9",
    "transportCountry": "Chili",
    "transportPort": "San Antonio"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "2.7",
    "transportCountry": "Australia",
    "transportPort": "Maersk"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "1",
    "transportCountry": "Marocco",
    "transportPort": "Casablanca"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "1",
    "transportCountry": "Kuwait",
    "transportPort": "Shuwaikh"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "1",
    "transportCountry": "Jordan",
    "transportPort": "Aqaba"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "0.8",
    "transportCountry": "Saoudi Arabia",
    "transportPort": "Jeddah"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "0.8",
    "transportCountry": "Malta",
    "transportPort": "Maraxklokk"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "0.9",
    "transportCountry": "Mexico",
    "transportPort": "Veracruz"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "1.2",
    "transportCountry": "Thailand",
    "transportPort": "Bangkok"
},
{
    "response": "Success",
    "errorMsg": "",
    "transportCost": "1",
    "transportCountry": "Thailand",
    "transportPort": "havana"
}
]

ある配列で最初の 2 つのセットを取得し、別の配列で他のセットを取得するにはどうすればよいですか...これは初めてなので、修正してください...

4

2 に答える 2

0

JSON では、キーまたは値 (JSON の配列内の値を含む) が任意の順序であるとは定義されていません。したがって、解析後にアイテムを自分でソートする必要があります。

また、JSON を解析するには、利用可能な任意の JSON パーサーを使用できます(私は SBJson を好みます)。通常、パーサーは JSON をNSDictionaryに変換する機能を提供するため、そのコンテンツを簡単に処理できます。

于 2013-06-11T12:08:29.427 に答える
0

JSON を解析して Objective-C オブジェクトを取得するには、次のコードを使用します (dataは取得したばかりの JSON です)。

NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data 
                                          options:NSJSONReadingMutableContainers 
                                          error:&e];

その後、NSArray複数の辞書を含む が作成されます ( NSDictionary)。最初のものを取得するには、次のようにします。

if (!jsonArray) {
  NSLog(@"Error parsing JSON: %@", e);
} else {
    // get the first dictionary
    NSDictionary *dict = [jsonArray objectAtIndex:0];    
}
于 2013-06-11T12:16:40.697 に答える