菜鸟教程小白 发表于 2022-12-13 09:20:32

iphone - key 未知时获取对象?


                                            <p><p>我有一些如下所示的 json,我正试图将其转换为 nsdictionaries。我的问题是 1、5 和 4 是键,具有不可预测的值。我如何在不知道 key 的情况下获取每个对象 - {"id":"A","name":"Nike"}? </p>

<pre><code>// JSON looks like:
{
&#34;shops&#34;:
{
&#34;1&#34;:{&#34;id&#34;:&#34;A&#34;,&#34;name&#34;:&#34;Nike&#34;},
&#34;5&#34;:{&#34;id&#34;:&#34;G&#34;,&#34;name&#34;:&#34;Apple&#34;}
&#34;4&#34;:{&#34;id&#34;:&#34;I&#34;,&#34;name&#34;:&#34;Target&#34;}
}
}

// how to step thru this?
NSArray *shopsArray = [ objectForKey:@&#34;shops&#34;];
</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:@&#34;shops&#34;];

for(id obj in ) {
//do stuff with obj...
}
</code></pre>

<p><strong>编辑</strong>:如果您需要对值进行排序,则可以执行以下操作:</p>

<p>首先,将传入的 JSON 改成这种结构:</p>

<pre><code>{
&#34;shops&#34;:[
      {&#34;key&#34;:&#34;1&#34;, &#34;id&#34;:&#34;A&#34;,&#34;name&#34;:&#34;Nike&#34;},
      {&#34;key&#34;:&#34;5&#34;,&#34;id&#34;:&#34;G&#34;,&#34;name&#34;:&#34;Apple&#34;},
      {&#34;key&#34;:&#34;4&#34;, &#34;id&#34;:&#34;I&#34;,&#34;name&#34;:&#34;Target&#34;}
]
}
</code></pre>

<p>然后,您可以对数组中的对象进行排序。</p>

<pre><code>NSArray *shops = [ objectForKey:@&#34;shops&#34;];
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]
查看完整版本: iphone - key 未知时获取对象?