如何获取jsonarray中 某个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取jsonarray中 某个值相关的知识,希望对你有一定的参考价值。

1、创建一个jsonArray对象。里面包含重复的内容,如图。

2、然后创建一个set集合,因为set集合中的元素不重复具有去重的效果。

3、通过循环把jsonArray对象中的元素都添加到set集合且先输出元对象的内容来看效果。

4、把jsonArray添加到set集合后,从上一步可以看出是3条记录,这里把set集合的长度输出看下它的大小可以发现变小了。

5、再把set集合转成字符串再转换成jsonArray对象。

6、重新使用for循环把新赋值的jsonArray对象值输出就完成了。

参考技术A public static void jsonToBean(String data)
try
JSONArray array = new JSONArray(data);//将json字符串转成json数组
for (int i = 0; i < array.length(); i++) //循环json数组
JSONObject ob = (JSONObject) array.get(i);//得到json对象
String name= ob.getString("name");//name这里是列名称,获取json对象中列名为name的值
System.out.print(name);//输出name
catch (JSONException e)

本回答被提问者采纳

如何从 JsonArray 中获取 NSDictonarys?

【中文标题】如何从 JsonArray 中获取 NSDictonarys?【英文标题】:How to get a NSDictonarys out of JsonArray? 【发布时间】:2013-12-20 17:01:51 【问题描述】:

我正在开发一个 iOS - 项目,它将显示一个人的关注者。 有一个正在运行的 Web 服务器从不同的社交网络获取数据,将它们与时间戳一起保存到 SQL 数据库中。 iOS App 发出请求并从 Sql 数据库中获取 Json。我将 Json 转换为 Array 并打印到控制台。

NSString *url = [NSString stringWithFormat:@"http://getdata.php"];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

NSError *error;
NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
NSLog(@"%@",json);

输出:

(
    
    date = "2013-12-11";
    facebook = 107;
    instagram = 47;
    twitter = 42;
,
    
    date = "2013-12-12";
    facebook = 107;
    instagram = 45;
    twitter = 42;
,
    
    date = "2013-12-13";
    facebook = 107;
    instagram = 45;
    twitter = 42;
)

所以我想做的是,将 Facebook、Instagram 和 Twitter 关注者与前一天进行比较。我怎么能这样做:获取整个对象,日期是今天。它会打印出来:

    date = "2013-12-13";
    facebook = 107;
    instagram = 45;
    twitter = 42;

感谢您的帮助,对不起我的英语!

【问题讨论】:

你试过简单地使用 NSDictionary 而不是 NSArray 吗? 你拥有的是一个 NSDictionary 对象的 NSArray。要获取 NSDictionary,请索引数组。 @nickAtStack - 这只会错误地命名对象并进一步混淆事物。 提示:查看 NSLog 列表——() 字符围绕着一个数组。 字符围绕着一个字典。 > "我将 Json 转换为数组" 不,你没有。您刚刚将 JSON 序列化为一个表示,它恰好是 Foundation 对象的层次结构,其根对象是 NSArray 或 NSDictionary。 【参考方案1】:

您可以使用一个简单的 for 循环来枚举数组中的所有字典。为了将每一天与前一天进行比较,您必须从索引 1 开始,如下所示:

for (NSUInteger i = 1; i < json.count; i++) 
    NSDictionary *currentDay = json[i];
    NSDictionary *previousDay = json[i-1];

    // Compare the follower counts for each social network here

【讨论】:

这是一个完美的想法,它的工作!但万一网络服务器没有更新这些值。它采用前一天的价值。有没有办法查到日期?如果 date = today 得到字典? @user3123470 是的,有,但这是一个不同的问题,因此应该作为一个单独的问题提出。 我该怎么做:获取整个对象,其中 Date 是今天。 这是我的问题的一部分,但如果你能回答第二个问题,那就太好了. 将每个字典中的NSString 转换为NSDate 并与当前日期进行比较。请记住,NSDate 包含日期和时间,因此您需要将 今天NSDate 标准化为午夜。 NSDateComponentsNSCalendar 的组合将对此有所帮助。那么比较就是调用compare:并寻找NSOrderedSame

以上是关于如何获取jsonarray中 某个值的主要内容,如果未能解决你的问题,请参考以下文章

Python 怎么获取json 里的特定的某个值

使用 gson 从 JsonArray 中获取值

如何使用 phpunit 测试 JsonArray 中的随机值

Android Kotlin Volley 如何从 JSONArray 中获取价值

如何从 JsonArray 中获取 NSDictonarys?

如何解决 JSONArray 问题,无法获取数据,Android Studio