【问题标题】:How to compare 3 json array in ios?如何比较ios中的3个json数组?
【发布时间】:2015-11-18 00:28:30
【问题描述】:

这是来自不同响应的 3 个 JSON 数组。

我只想打印“名称”,以防“size_id”为 1 的书,然后打印“名称”和“说明” 以及在 Objective-C 中(在 iOS 上)具有 category_id 和 Size_id 匹配的“Prize”。

 category
   [ {
        "Category_Id": "1",
        " Name": "Books",
          }
      {
        "Category_Id": "2",
        " Name": "Dummies",
      }

    product
    [
      {
        "Sub_Cat_Id": "3",
        "Category_Id": "1",
        "Size_id": "3",
        "Sub_Name": "java",
        "Description": "We are introducing new product.",
      },
      {
        "Sub_Cat_Id": "4",
        "Category_Id": "2",
        "Size_id": "3",
        "Sub_Name": "Android",
        "Description": "We are introducing new product.",
      },
      {
        "Sub_Cat_Id": "2",
        "Category_Id": "1",
        "Size_id": "1",
        "Sub_Name": "ios",
        "Description": "We are introducing new product.",
      },

    Prize
    [
      {
        "Size_Id": "1",
        "pirze": "600 "

      },
      {
        "Size_Id": "2",
        " pirze ": "300 "
      },
      {
        "Size_Id": "2",
        " pirze ": "800"
        }

【问题讨论】:

  • 用您尝试的 Objective-C 代码更新您的问题。

标签: ios objective-c json nsarray nsdictionary


【解决方案1】:

我建议通过NSJSONSerializationdataWithJSONObject: 将此JSON 转换为Foundation 的NSArray。 之后只需使用 NSArray/NSDictionary 过滤来检索您的值

【讨论】:

    【解决方案2】:

    我建议您为您的对象(类别、产品和奖品)创建一个类,这样您就可以为您的读数创建一个对象并将它们添加到 NSArray。一旦你在同一个数组中得到了对象,你就可以对那个数组应用一个谓词,以便只选择你想要的对象:

    NSArray *objects = ...; // This is the array with your objects
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(prize.size_id == 1)"];
    NSArray *array = [objects filteredArrayUsingPredicate:tiltPredicate]; // This is the array with the objects you want (size_id = 1)
    

    【讨论】:

    • 我认为谓词不会起作用,因为 OP JSON 被错误定义为使用 size_id 的字符串值。
    • 数组中的对象必须是具有所需属性的自定义类。所以可以应用谓词。假设我们创建了具有属性类别、产品和奖品的类Whatever : NSObject(请注意,您还需要为这些属性设置类),这样您就可以从您的任何对象访问 Prize.size_id。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    相关资源
    最近更新 更多