解析key值不确定的json数据
遇到一个奇葩的需求,一段json的key值是动态的,并且这个key还是有作用的。这就要求在不知道key是多少的情况下去把这段json解析出来。
我用到的方法是迭代器。具体代码如下
JSONObject jsonObject = new JSONObject(jsonData);
//通过迭代器获取这段json当中所有的key值
Iterator keys = jsonObject.keys();
//然后通过一个循环取出所有的key值
while (keys.hasNext()){
String key = String.valueOf(keys.next());
//最后就可以通过刚刚得到的key值去解析后面的json了
}
得到key值以后,就可以用jsonobject来解析对应的值了。
示例:
/**
* 获取汇率
*
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
public BigDecimal getRate() throws Exception {
String m_rateResult = HttpUtil.sendGet("https://x.szsing.com/v2/quote/price/m_rate");
JSONObject jsonObject = new JSONObject(m_rateResult);
JSONObject data = jsonObject.getJSONObject("data");
Iterator keys = data.keys();
String CNY = "0";
while (keys.hasNext()) {
String key = String.valueOf(keys.next());
JSONObject m_rate = data.getJSONObject(key);
CNY = m_rate.getString("CNY");
if (CNY.isEmpty() == false) {
break;
}
}
return new BigDecimal(CNY);
} /**
* 获取类别版本
*
* @return
* @throws Exception
*/
public String getCategoryVersion() throws Exception {
String m_custom = HttpUtil.sendGet("https://x.szsing.com/v2/quote/price/m_custom");
JSONObject jsonObject = new JSONObject(m_custom);
JSONObject data = jsonObject.getJSONObject("data");
JSONObject category = data.getJSONObject("category");
return category.getString("version");
}
解析key值不确定的json数据的更多相关文章
- Gson如何解析key值是数字的json数据
1.使用注解@SerializedName来解决这个问题 2.比如有如下json数据:(key值是数字"1112") { "1112": "抖音&qu ...
- php怎么解析utf-8带BOM编码的json数据,php解析json数据返回NULL
今天遇到一个问题,json_decode解析json数据返回null,试了各种方法都不行,最后发现,原来是json文件编码的问题. 当json_decode解析utf-8带BOM格式的json数据时, ...
- json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例
json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例 json-lib-2.4-jdk15.jar所需全部JAR包.rar ...
- JSON - 使用cJSON 解析Qt通过UDP发送的JSON数据
1,cJSON支持在C程序中创建和解析JSON数据,其提供多种方法供C程序使用,最直接的是将cJSON.c和cJSON.h加入到C工程中,源代码:https://github.com/DaveGamb ...
- 如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码
<span style="font-size:14px;">一直想找如何解析JSON数据的说,今天终于找到有人发帖子了.之前有人说用superobject,Tlkjso ...
- JSON数据解析及gson.jar包
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送. 服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON JSON一种简单的数据格式,比xml更轻巧. JS ...
- Java之Hashmap中value为null,则返回json数据中key不存在
前两天干活儿的时候,将实例对象放在Hashmap中返回给前端: ArtificialEntity artificialEntity = artificialService.getInfoById(id ...
- 教你不编程快速解析 JSON 数据
JSON 是一种轻量级的,不受语言约束的数据存储格式,大部分编程语言都可以解析它,并且对编程人员也十分友好.我们在进行通讯/数据交互时,非常经常用到 JSON 格式. 但是,我们在进行数据存储的时候, ...
- 【golang】json数据解析 - 嵌套json解析
@ 目录 1. 通过结构体映射解析 2. 嵌套json解析-map 1. 通过结构体映射解析 原数据结构 解析 // 结构体 type contractJson struct { Data []tra ...
随机推荐
- 通过语法设置DNS解析
通过语法设置DNS解析 # 来自 https://dns.he.net/?action=logout # 语法 http://[你的域名]:[你的密码]@dyn.dns.he.net/nic/upda ...
- Android 10开发者预览版功能介绍
Android P的开发者预览版最亮眼的功能莫过于支持“刘海屏”等屏幕显示.同样在适配可折叠设备方面,Android Q的第一个开发者预览版也很“接地气”,谷歌早在去年11月就发布了对可折叠设备的支持 ...
- Nginx 和 IIS 实现动静分离(转)
转载地址:https://www.cnblogs.com/paul8339/p/5825201.html 动静分离,说白了,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与 ...
- 4337: BJOI2015 树的同构
题解: 树的同构的判定 有根树从根开始进行树hash 先把儿子的f进行排序 $f[i]=\sum_{j=1}^{k} { f[j]*prime[j]} +num[i]$(我没有仔细想这样是不是树是唯一 ...
- Django与supervisor 管理进程
1.前言 在Django项目中,我们需要用到一些独立于Django框架外的脚本.这样一些脚本可能需要独立的持续运行,且具有很强的可维护性,这个时候supervisor就可以排上用场了. 基于pytho ...
- Fragment概述
1 Fragment Fragment是什么? Fragment允许将Activity拆分成多个完全独立封装的可重用的组件,每个组件有它自己的生命周期和UI布局. 每个Fragment都是独立的模块, ...
- RxJAVA notes
注: 本文只适用于自我复习,初学者请移步 链接 常用模板 rxjava2+retrofit2 public static void main(String[] args) { String BASE_ ...
- c#学习个人总结
c#一门程序语言,我的专业课.有了一学期的接触对它的了解还只是皮毛,里面有许多的知识都有待了解学习和提高,熟练掌握程序的语法,能够熟练的调用,对于一些理论性的知识还需要今后更多的揣摩和研究,讲书本中的 ...
- javascript自制函数图像生成器
出于某种目的想做这个东西,顺便可以提供给GMA的用户&&放在博客园. 实现上只是简单的描点,加上一个相邻两点连线的开关,完全没有技术含量.而且函数图像一旦多起来就会变卡. 瓶颈在隐函数 ...
- 常见问题:bootstrap datepicker日期插件汉化
引入简体中文js(bootstrap-datepicker.zh-CN.js),并在datepicker属性配置language为‘zh-CN’即可,示例如下: $(".form_datet ...