如何访问NSMutableArray中的JSON数据? [英] How do I access JSON data in an NSMutableArray?

查看:161
本文介绍了如何访问NSMutableArray中的JSON数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试访问从网站获取并存储在数组中的JSON数据.但是,首先,我想过滤掉除信息以外的所有内容,这是我使用<code>valueForKey:</code>方法所做的.为了测试这一点,我使用<code>NSLog</code>方法将它们写入日志,但是当我运行它时却得到"null".<em class="showen"></em></p> <p class="en">I'm trying to access JSON data that I have taken from a website and stored in an array. First, however, I want to filter out everything but the "title" information, which I am doing using the <code>valueForKey:</code> method. In order to test this I am writing them to the log using the <code>NSLog</code> method, however when I run this I get "null".</p> <p class="cn">有人能告诉我为什么我得到我得到的东西吗?<em class="showen"></em></p> <p class="en">Can anyone advise me, as to why I'm getting what I'm getting?</p> <p class="cn">非常感谢您的帮助.</p> <pre><code><code>{ NSURL *redditURL = [NSURL URLWithString:@"http://pastebin.com/raw.php?i=FHJVZ4b7"]; NSError *error = nil; NSString *jsonString = [NSString stringWithContentsOfURL:redditURL encoding:NSASCIIStringEncoding error:&error]; NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; NSMutableArray *titles = [json valueForKey:@"title"]; NSLog(@"%@", json); } </code></code></pre> <p class="cn"> </p> <h3 class="best_ans mt-1">推荐答案</h3> <p class="cn">查看在该pastebin中返回的JSON对象,您将得到以下信息:<em class="showen"></em></p> <p class="en">Looking at the JSON object returned in that pastebin, you get the following:</p> <pre><code><code> { "kind":"Listing", "data":{ "modhash":"", "children":[ ... ], "after":"t3_1qwcm7", "before":null } } </code></code></pre> <p class="cn">这不是数组,它是一个JSON对象.要获取子项的标题,您需要执行以下操作:<em class="showen"></em></p> <p class="en">That is not an array, its a JSON object.. To get the titles of the children you would want to do the following:</p> <pre><code><code> NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; NSMutableArray *children = [[json objectForKey:@"data"] objectForKey:@"children"]; NSMutableArray *titles = [children valueForKeyPath:@"data.title"]; </code></code></pre> <p class="cn">这是因为子数组嵌套在<code>"data"</code>对象中,而每个子对象嵌套在另一个<code>"data"</code>对象中.<em class="showen"></em></p> <p class="en">This is because the children array is nested in a <code>"data"</code> object and each individual child object is nested in another <code>"data"</code> object.</p> <p class="cn">然后,您还需要调用<code>valueForKeyPath:</code>而不是<code>valueForKey:</code>,因为数据嵌套在另一个对象中<em class="showen"></em></p> <p class="en">You then also need to call <code>valueForKeyPath:</code> instead of <code>valueForKey:</code> because the data is nested in another object</p> <p>这篇关于如何访问NSMutableArray中的JSON数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p> </div> <div class="arc-body-main-more"> <span onclick="unlockarc('1900323');">查看全文</span> </div> </div> <div> </div> <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div> </div> </article> <div id="arc-ad-2" class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="widget bgwhite radius-1 mb-1 shadow widget-rel"> <h5>相关文章</h5> <ul> <li> <a target="_blank" title="JSON数据中的访问字段" href="/1511450.html"> JSON数据中的访问字段; </a> </li> <li> <a target="_blank" title="访问Json文件中的数据" href="/1832096.html"> 访问Json文件中的数据; </a> </li> <li> <a target="_blank" title="如何使用NSMutableArray中的数据使用NSUserDefaults保存数据" href="/930448.html"> 如何使用NSMutableArray中的数据使用NSUserDefaults保存数据; </a> </li> <li> <a target="_blank" title="如何访问嵌套的 JSON 数据" href="/2660568.html"> 如何访问嵌套的 JSON 数据; </a> </li> <li> <a target="_blank" title="如何访问嵌套的JSON数据" href="/1004399.html"> 如何访问嵌套的JSON数据; </a> </li> <li> <a target="_blank" title="如何访问JSON数组数据?" href="/1506887.html"> 如何访问JSON数组数据?; </a> </li> <li> <a target="_blank" title="如何在 AmCharts 中访问嵌套的 Json 数据" href="/2614781.html"> 如何在 AmCharts 中访问嵌套的 Json 数据; </a> </li> <li> <a target="_blank" title="如何在AmCharts中访问嵌套的Json数据" href="/1906989.html"> 如何在AmCharts中访问嵌套的Json数据; </a> </li> <li> <a target="_blank" title="从其他类访问NSMutableArray" href="/946228.html"> 从其他类访问NSMutableArray; </a> </li> <li> <a target="_blank" title="NSMutableArray访问问题" href="/1617731.html"> NSMutableArray访问问题; </a> </li> <li> <a target="_blank" title="访问JSON数据" href="/1481689.html"> 访问JSON数据; </a> </li> <li> <a target="_blank" title="如何在AngularJS中访问此JSON数据?" href="/1506905.html"> 如何在AngularJS中访问此JSON数据?; </a> </li> <li> <a target="_blank" title="Python访问JSON对象中的数据" href="/1798940.html"> Python访问JSON对象中的数据; </a> </li> <li> <a target="_blank" title="将 Json 表解析为 NSMutableArray" href="/2318111.html"> 将 Json 表解析为 NSMutableArray; </a> </li> <li> <a target="_blank" title="访问嵌套的JSON数据" href="/1329334.html"> 访问嵌套的JSON数据; </a> </li> <li> <a target="_blank" title="如何使用Ember数据访问json中的嵌套对象" href="/676988.html"> 如何使用Ember数据访问json中的嵌套对象; </a> </li> <li> <a target="_blank" title="如何使用 Ember 数据访问 json 中的嵌套对象" href="/2722130.html"> 如何使用 Ember 数据访问 json 中的嵌套对象; </a> </li> <li> <a target="_blank" title="如何在angularjs中访问特定的json数组数据" href="/1123041.html"> 如何在angularjs中访问特定的json数组数据; </a> </li> <li> <a target="_blank" title="使用JSON-Framework将NSMutableArray作为JSON发送" href="/945792.html"> 使用JSON-Framework将NSMutableArray作为JSON发送; </a> </li> <li> <a target="_blank" title="访问json中的数据未获取密钥" href="/1512037.html"> 访问json中的数据未获取密钥; </a> </li> <li> <a target="_blank" title="如何借助数据字典从c#中的json数据访问数据" href="/1259244.html"> 如何借助数据字典从c#中的json数据访问数据; </a> </li> <li> <a target="_blank" title="Singleton NSMutableArray由NSArrayController在多个NIB中访问" href="/521141.html"> Singleton NSMutableArray由NSArrayController在多个NIB中访问; </a> </li> <li> <a target="_blank" title="您如何存储"int"? NSMutableArray *或NSMutableDictionary *中的值? JSON数据(以整数形式出现)的长期问题." href="/1692026.html"> 您如何存储"int"? NSMutableArray *或NSMutableDictionary *中的值? JSON数据(以整数形式出现)的长期问题.; </a> </li> <li> <a target="_blank" title="使用 UITableView indexPath 访问 NSMutableArrays 的多维 NSMutableArray" href="/2318818.html"> 使用 UITableView indexPath 访问 NSMutableArrays 的多维 NSMutableArray; </a> </li> <li> <a target="_blank" title="在Javascript变量中访问JSON数据" href="/1020038.html"> 在Javascript变量中访问JSON数据; </a> </li> </ul> </div> <div class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="side"> <div class="widget widget-side bgwhite mb-1 shadow"> <h5>移动开发最新文章</h5> <ul> <li> <a target="_blank" title="访问/ var / mobile / Containers / Data / Application中的文件,无需越狱iPhone" href="/918992.html"> 访问/ var / mobile / Containers / Data / Application中的文件,无需越狱iPhone; </a> </li> <li> <a target="_blank" title="无法发送使用JavaMail和客户经理的Gmail电子邮件(错误400)" href="/157852.html"> 无法发送使用JavaMail和客户经理的Gmail电子邮件(错误400); </a> </li> <li> <a target="_blank" title="org.apache.http.conn.HttpHostConnectException:连接到http:// localhost在android中拒绝" href="/544618.html"> org.apache.http.conn.HttpHostConnectException:连接到http:// localhost在android中拒绝; </a> </li> <li> <a target="_blank" title="iOS 9.3:发生SSL错误,无法与服务器建立安全连接" href="/917199.html"> iOS 9.3:发生SSL错误,无法与服务器建立安全连接; </a> </li> <li> <a target="_blank" title="WRITE_EXTERNAL_STORAGE不适用于棒棒糖,即使它已设置在清单中" href="/1738831.html"> WRITE_EXTERNAL_STORAGE不适用于棒棒糖,即使它已设置在清单中; </a> </li> <li> <a target="_blank" title="java.net.ProtocolException:流意外结束" href="/154260.html"> java.net.ProtocolException:流意外结束; </a> </li> <li> <a target="_blank" title="的冲突依赖“com.android.support:support-annotations~~V”。解决版本的应用程序(23.1.0)和测试应用程序(23.0.1)的不同" href="/174222.html"> 的冲突依赖“com.android.support:support-annotations~~V”。解决版本的应用程序(23.1.0)和测试应用程序(23.0.1)的不同; </a> </li> <li> <a target="_blank" title="SDK的位置没有找到。与local.properties文件或者与ANDROID_HOME环境变量sdk.dir限定位置" href="/188192.html"> SDK的位置没有找到。与local.properties文件或者与ANDROID_HOME环境变量sdk.dir限定位置; </a> </li> <li> <a target="_blank" title="如何处理:java.util.concurrent.TimeoutException:android.os.BinderProxy.finalize()超时10秒后错误?" href="/96332.html"> 如何处理:java.util.concurrent.TimeoutException:android.os.BinderProxy.finalize()超时10秒后错误?; </a> </li> <li> <a target="_blank" title="什么是\? (反斜线问号)转义序列是什么意思?" href="/690277.html"> 什么是\? (反斜线问号)转义序列是什么意思?; </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门教程 </h5> <ul> <li> <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html"> Java教程 </a> </li> <li> <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html"> Apache ANT 教程 </a> </li> <li> <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html"> Kali Linux教程 </a> </li> <li> <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html"> JavaScript教程 </a> </li> <li> <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html"> JavaFx教程 </a> </li> <li> <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html"> MFC 教程 </a> </li> <li> <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html"> Apache HTTP客户端教程 </a> </li> <li> <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html"> Microsoft Visio 教程 </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门工具 </h5> <ul> <li> <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4"> Java 在线工具 </a> </li> <li> <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6"> C(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8"> PHP 在线工具 </a> </li> <li> <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1"> C# 在线工具 </a> </li> <li> <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5"> Python 在线工具 </a> </li> <li> <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33"> MySQL 在线工具 </a> </li> <li> <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2"> VB.NET 在线工具 </a> </li> <li> <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14"> Lua 在线工具 </a> </li> <li> <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35"> Oracle 在线工具 </a> </li> <li> <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7"> C++(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20"> Go 在线工具 </a> </li> <li> <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45"> Fortran 在线工具 </a> </li> </ul> </div> </div> </div> <script type="text/javascript">var eskeys = '如何,访问,nsmutablearray,中,的,json,数据'; var cat = 'cc';';//mobile</script> </div> <div id="pop" onclick="pophide();"> <div id="pop_body" onclick="event.stopPropagation();"> <h6 class="flex flex101"> 登录 <span onclick="pophide();">关闭</span> </h6> <div class="pd-1"> <div class="wxtip center"> <span>扫码关注<em>1秒</em>登录</span> </div> <div class="center"> <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" /> </div> <div style="margin-top:10px;display:flex;justify-content: center;"> <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" /> <input id="btngo" type="button" onclick="chk()" value="GO" /> </div> <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;"> 发送“验证码”获取 <em style="padding: 0 .5rem;">|</em> <span style="color: #01a05c;">15天全站免登陆</span> </div> <div id="chkinfo" class="tip"></div> </div> </div> </div> <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script> <footer class="footer"> <div class="container"> <div class="flink mb-1"> 友情链接: <a href="https://www.it1352.com/" target="_blank">IT屋</a> <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a> <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a> </div> <section class="copyright-section"> <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a> ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a> <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a> <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a> <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a> <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a> 本站内容来源互联网,如果侵犯您的权益请联系我们删除. </section> <!--统计代码--> <script type="text/javascript"> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript"> (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> </body> </html>