iphone - key 未知时获取对象?
<p><p>我有一些如下所示的 json,我正试图将其转换为 nsdictionaries。我的问题是 1、5 和 4 是键,具有不可预测的值。我如何在不知道 key 的情况下获取每个对象 - {"id":"A","name":"Nike"}? </p>
<pre><code>// JSON looks like:
{
"shops":
{
"1":{"id":"A","name":"Nike"},
"5":{"id":"G","name":"Apple"}
"4":{"id":"I","name":"Target"}
}
}
// how to step thru this?
NSArray *shopsArray = [ objectForKey:@"shops"];
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>从 <code>objectForKey:@"shops"</code> 返回的对象实际上是一个 <code>NSDictionary</code> 实例,而不是 <code>NSArray</code>,因为键实际上是字符串,而不是数值。</p>
<p>出于您的目的,您可以在生成的 <code>NSDictionary</code> 上简单地调用 <code>-allValues</code>。</p>
<pre><code>NSDictionary *shops = [ objectForKey:@"shops"];
for(id obj in ) {
//do stuff with obj...
}
</code></pre>
<p><strong>编辑</strong>:如果您需要对值进行排序,则可以执行以下操作:</p>
<p>首先,将传入的 JSON 改成这种结构:</p>
<pre><code>{
"shops":[
{"key":"1", "id":"A","name":"Nike"},
{"key":"5","id":"G","name":"Apple"},
{"key":"4", "id":"I","name":"Target"}
]
}
</code></pre>
<p>然后,您可以对数组中的对象进行排序。</p>
<pre><code>NSArray *shops = [ objectForKey:@"shops"];
for(NSDictionary *shop in shops) {
NSString *key = ;
//...
}
</code></pre></p>
<p style="font-size: 20px;">关于iphone -key 未知时获取对象?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/7648990/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/7648990/
</a>
</p>
页:
[1]