【问题标题】:How can I parse this json schema in Objective-c如何在 Objective-c 中解析这个 json 模式
【发布时间】:2016-06-28 13:02:39
【问题描述】:

我有一个搜索站的 iOS 应用,我想添加燃油价格。

我在数据库中找到了一个 Opendata,但我无法解析数组“Fields”和“price_e10”,只能解析数组“Records”。

这是一个 JSON SCHEMA 的例子(我认为它是多维数组):

"records":[
{
"datasetid":"prix_des_carburants_j_7",
"recordid":"fa74ca1fdf6938333d2bc1013623b66771557b31",
"fields":{
"price_e10":1.389,

这里是我在 Objective-c 中的代码示例:

NSError *e;
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseData options: NSJSONReadingMutableContainers error: &e];

    NSArray *arrayResult =[dict objectForKey:@"records"];
    arraySmpl = [NSMutableArray arrayWithArray:arrayResult];

    NSLog(@" MULTIPLE ARRAY : %@ ",arrayResult);
    rowsInSection = [arraySmpl count] + 1;

感谢您的帮助

【问题讨论】:

  • arrayResult 是 NSDictionary 的 NSArray。对于键fields,值为NSDictionary。 => NSString *aprice = [[arrayResult objectAtIndex:??] objectForKey:@"fields"] objectForKey:@"price_e10] ?

标签: php objective-c arrays json multidimensional-array


【解决方案1】:

我认为数据来自服务器。

NSDictionary *globalDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
NSArray *recordsArray = [globalDict valueForKey:@"records"];
for (NSDictionary *dict in recordsArray) {
    NSDictionary *fieldsDict = [dict valueForKey:@"fields"];
    NSString *fuelPrice = [fieldsDict valueForKey:@"price_e10"];
    NSLog(@"fuelPrice: %@", fuelPrice);
}

输出:fuelPrice:1.389

【讨论】:

    【解决方案2】:

    请按照以下步骤操作:

     NSArray *rec = [allDict objectForKey:@"records"];  
         for (NSDictionary *str in loans) {
         NSDictionary *conn = [str objectForKey:@"fields"];
                NSStirng *get_price = [conn objectForKey:@"price_e10"];
        }
    

    现在字符串“get_price”的值为 1.389,

    【讨论】:

    • 感谢您的帮助,我需要您的帮助以在表格视图中显示 GAZOLE、PRICE-E10 ....的价格
    【解决方案3】:

    就像我上面提到的“Price_e10”,你可以直接访问 price_gazole price_sp95 , price_sp98。

    NSArray *rec = [allDict objectForKey:@"records"];  
             for (NSDictionary *str in loans) {
             NSDictionary *conn = [str objectForKey:@"fields"];
                    NSStirng *get_price = [conn objectForKey:@"price_e10"];
     NSStirng *price_gazole = [conn objectForKey:@"price_gazole"]; //output: 1.205
     NSStirng *price_sp95 = [conn objectForKey:@"price_sp95"];  //output :1.425
    
     NSStirng *price_sp98 = [conn objectForKey:@"price_sp98"]; //output 1.465
    
            }
    

    【讨论】:

    • 好的,谢谢,如何将它添加到数组中以在我的 TableView 中显示?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多