使用 NSJSONSerialization 解析 JSON

2024-05-31

对此进行了太多讨论,但我不知道如何解决我的问题。

这是我从 WorldWeatherOnline 获取的 JSON 数据。 JSON 有效。但我不知道如何解析它。这是我的代码,后面是 JSON。请帮忙!

NSError* errorInfo;
NSDictionary *parsedJSON = [NSJSONSerialization JSONObjectWithData:self.wwoWeatherData options:kNilOptions error:&errorInfo];

NSArray* temp = [parsedJSON objectForKey:@"temp_C"];
NSLog(@"%@", temp);


   {
   "data":{
      "current_condition":[
         {
            "cloudcover":"0",
            "humidity":"82",
            "observation_time":"11:07 PM",
            "precipMM":"0.0",
            "pressure":"1024",
            "temp_C":"16",
            "temp_F":"61",
            "visibility":"10",
            "weatherCode":"113",
            "weatherDesc":[
               {
                  "value":"Clear"
               }
            ],
            "weatherIconUrl":[
               {
                  "value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0008_clear_sky_night.png"
               }
            ],
            "winddir16Point":"NNE",
            "winddirDegree":"30",
            "windspeedKmph":"11",
            "windspeedMiles":"7"
         }
      ],
      "request":[
         {
            "query":"Lat 48.85 and Lon 2.35",
            "type":"LatLon"
         }
      ],
      "weather":[
         {
            "date":"2012-09-04",
            "precipMM":"0.0",
            "tempMaxC":"25",
            "tempMaxF":"77",
            "tempMinC":"14",
            "tempMinF":"57",
            "weatherCode":"113",
            "weatherDesc":[
               {
                  "value":"Sunny"
               }
            ],
            "weatherIconUrl":[
               {
                  "value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
               }
            ],
            "winddir16Point":"N",
            "winddirDegree":"5",
            "winddirection":"N",
            "windspeedKmph":"13",
            "windspeedMiles":"8"
         },
         {
            "date":"2012-09-05",
            "precipMM":"0.0",
            "tempMaxC":"22",
            "tempMaxF":"72",
            "tempMinC":"10",
            "tempMinF":"50",
            "weatherCode":"113",
            "weatherDesc":[
               {
                  "value":"Sunny"
               }
            ],
            "weatherIconUrl":[
               {
                  "value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
               }
            ],
            "winddir16Point":"NNE",
            "winddirDegree":"25",
            "winddirection":"NNE",
            "windspeedKmph":"20",
            "windspeedMiles":"13"
         },
         {
            "date":"2012-09-06",
            "precipMM":"0.0",
            "tempMaxC":"22",
            "tempMaxF":"71",
            "tempMinC":"11",
            "tempMinF":"51",
            "weatherCode":"113",
            "weatherDesc":[
               {
                  "value":"Sunny"
               }
            ],
            "weatherIconUrl":[
               {
                  "value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
               }
            ],
            "winddir16Point":"NE",
            "winddirDegree":"42",
            "winddirection":"NE",
            "windspeedKmph":"15",
            "windspeedMiles":"10"
         },
         {
            "date":"2012-09-07",
            "precipMM":"0.0",
            "tempMaxC":"24",
            "tempMaxF":"75",
            "tempMinC":"13",
            "tempMinF":"55",
            "weatherCode":"116",
            "weatherDesc":[
               {
                  "value":"Partly Cloudy"
               }
            ],
            "weatherIconUrl":[
               {
                  "value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png"
               }
            ],
            "winddir16Point":"ENE",
            "winddirDegree":"56",
            "winddirection":"ENE",
            "windspeedKmph":"13",
            "windspeedMiles":"8"
         },
         {
            "date":"2012-09-08",
            "precipMM":"0.0",
            "tempMaxC":"26",
            "tempMaxF":"78",
            "tempMinC":"16",
            "tempMinF":"61",
            "weatherCode":"113",
            "weatherDesc":[
               {
                  "value":"Sunny"
               }
            ],
            "weatherIconUrl":[
               {
                  "value":"http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
               }
            ],
            "winddir16Point":"ENE",
            "winddirDegree":"76",
            "winddirection":"ENE",
            "windspeedKmph":"9",
            "windspeedMiles":"6"
         }
      ]
   }
}
  

您解析的 json 包含一个名为的字典data。该字典中有一个数组current_condition。继续深入研究数据结构以找到您正在寻找的属性:

NSDictionary *data = [parsedJSON objectForKey:@"data"];
NSArray *currentConditions = [data objectForKey:@"current_condition"];
NSDictionary *condition = [currentConditions objectAtIndex:0];
NSString *tempC = [condition objectForKey:@"temp_C"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NSJSONSerialization 解析 JSON 的相关文章

随机推荐

  • git commit -m 与 git commit -am

    看起来很容易 但我就是不明白 我在我的应用程序的根目录中 这是我的工作流程 git add git commit m added a new feature some files changed git push heroku master
  • JQGrid自定义排序

    我有一个 JQGrid 其中填充了正常工作的数据 默认排序功能按预期工作 但是 我想按单击的列和按名称列排序 每次 我觉得onSortCol是我应该开始的地方 但是文档中没有太多关于如何对表的内容进行排序的内容 理想情况下 我希望不必编写自
  • 如何在C#中剪切、编辑和合并OGG文件?

    我有一个 ogg vorbis 文件 我必须用它执行两个操作 将文件的一部分从一个位置剪切到另一个位置 将另一个文件与现有文件合并 如何在 C 中执行这两个操作 你可以使用 libzplay 来做到这一点http libzplay sour
  • Flutter android 风味生成 apk

    我正在尝试使用 flutter 设置 Android 风格 我有两个入口点 lib main prod dart lib main dev dart 我还在我的 gradle 文件中添加了以下内容 flavorDimensions vers
  • 获取过时的 Composer 软件包列表

    我想获取过时的软件包列表 这些软件包将在我发布时更新composer update 作曲家有这样的功能吗 如果没有 有没有办法做到这一点 有或没有作曲家 Update Since Composer v1 1 2016 年 5 月 https
  • 多个应用程序中的 Angular 共享资产

    我正在开发多个小型应用程序 这些应用程序将共享公共和共享模块以及资产 关于如何创建项目结构的部分已在这里回答 https stackoverflow com a 61254557 1351452 https stackoverflow co
  • JBehave 和 Maven - 如何跳过场景测试

    我正在使用 jbehave 和 jbehave maven 插件来运行一组场景测试 让我的测试类扩展 JUnitStories 一切都运行良好 唯一的问题是 我无法停止运行测试 每次我运行 Maven 安装目标时 它都会运行测试 我尝试在下
  • 向 Shopify Liquid 链接添加类?

    我正在尝试为我的客户生成注销链接 但想对该链接应用一个类 layout customer log out t customer logout link 上述液态代码生成 a href account logout Log out a 我想添
  • PyQt:使用 alpha 通道创建 QPixmap,而不是预乘颜色通道

    我想创建一个 QPixmap 来使用 QPainter 进行绘制 QPixmap 应支持透明度 而不使用预乘颜色通道 目前 我通过创建具有所需尺寸的 QPixmap 并用每个通道 包括 alpha 设置为零的 QColor 填充它来实现此目
  • 如何像facebook和twitter一样显示帖子更新时间?

    我正在制作一个通知平台 而不是显示通知到来的时间 我想显示自通知到达以来经过的时间 就像在 Twitter 和 Facebook 上发生的那样 他们显示 32m 1 小时前等 我想用JavaScript Java来实现这段代码 任何帮助将非
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 如何列出喜欢某个页面或感兴趣的 Facebook 用户 [重复]

    这个问题在这里已经有答案了 可能的重复 检索 Facebook 粉丝姓名 https stackoverflow com questions 2001281 retrieve facebook fan names 我想要获取喜欢某个页面或感
  • 是否可以在通过表单上传本地图像之前预览它们?

    更具体地说 我想使用一种带有一个或多个用于图像的文件输入字段的表单 当这些字段发生更改时 我想在将数据发送到服务器之前显示关联图像的预览 我尝试过多种 JavaScript 方法 但总是遇到安全错误 我不介意使用 java 或 flash
  • 嵌套名称说明符中的类型不完整

    我尝试在嵌套名称说明符中使用不完整类型 如下所示 class A int b A c error incomplete type A used in nested name specifier class A static const in
  • Python-如何删除 json 字符串中最后的逗号(,)

    嗨 我刚刚开始尝试 python tornado 和 mongodb 我是新手 我编写了一个简单的 get 函数来从 mongodb 获取所有值并以 JSON 格式返回 问题是 当我尝试将输出写入 JSON 字符串时 我在集合中的最后一条记
  • 从 BitmapImage 获取支持的图像格式

    如何获取 System Windows Media Imaging BitmapImage 支持的图像格式列表 我正在用 C WPF 编写一个简单的图像处理工具 BitmapImage 类是更有用的位图类之一 因为它能够从多种格式进行解码
  • Android ListView 子项

    我最近为 Android 应用程序创建了一个新的 ListView 对象 但遇到了一些错误 当我尝试使用简单适配器创建一个包含列表中子项目的项目时 创建的最新项目与其他项目重叠 我正在使用地图列表来创建项目 例如 如果我向地图列表中添加一个
  • 如何在 psycopg2 线程连接类中重新连接到 postgreSQL? SSL SYSCALL 错误导致的失败:在 Azure 中检测到 EOF?

    我们的应用程序运行良好 直到我们将 PostgreSQL 移植到 Azure 中的 Microsoft 数据库 然后 我们的应用程序会定期无故失败 并且到处都会出现 SSL SYSCALL 错误 删除等 我们已经尝试了互联网上描述的所有内容
  • 滚动部分滚动并溢出

    我正在尝试使用脚本 Scrollify https github com lukehaas Scrollify https github com lukehaas Scrollify 但我的部分比用户的屏幕长 这意味着您首先必须向下滚动才能
  • 使用 NSJSONSerialization 解析 JSON

    对此进行了太多讨论 但我不知道如何解决我的问题 这是我从 WorldWeatherOnline 获取的 JSON 数据 JSON 有效 但我不知道如何解析它 这是我的代码 后面是 JSON 请帮忙 NSError errorInfo NSD