解析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 ...
随机推荐
- PHP实现微信商户支付企业付款到零钱功能代码实例
本文为大家分享了PHP实现微信商户支付企业付款到零钱的具体代码,供大家参考,具体内容如下 微信支付开发文档 一.开通条件 企业付款为企业提供付款至用户零钱的能力,支持通过API接口付款,或通过微信支付 ...
- C# 解压与压缩文件
解压文件 ,引用 SharpZipLib.dll类库 方法一: public void UnGzipFile(string zipfilename) { //同压缩文件同级同名的非压缩文件路径 var ...
- matplotlib图例-【老鱼学matplotlib】
图例是啥,直接上图就知道了: 怎么创建上面的图例呢? 很简单,首先在plt.plot()函数中设置label文本属性,然后调用plt.legend()生成图例就可以了,完整的代码如下: import ...
- Servlet(五):请求转发和重定向
请求转发: 问题: 服务器在接收到浏览器的请求后,仅仅使用一个 Servlet进行请求处理,会造成不同的Servlet逻辑代码 冗余,Servlet的职责不明确. 解决: 使用请求转发. 特点: 一次 ...
- 集群环境下的Session共享
一.Cookie机制和Session机制回顾 1)定义:Session成为“会话”,具体是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间.Session ...
- linux 添加ssh和开启ssh服务apt管理的ubuntu
是在ubuntu下出现的需求 现笔记记录 apt-get update 更新源命令 apt-get install openssh-server 安装ssh服务 容易出现无法定位软件包.出现此问 ...
- ISP PIPLINE (六) AWB
What is WB(white balance)? 人的视觉和神经系统在看到白色物体的时候,基本不受环境的变化而出现严重的错觉.比如阴天,晴天,室内,室外,日光灯,白炽灯等的环境下,人依然会将白纸视 ...
- opencv coudn't find video stream from "XXX(文件名)"
opencv coudn't find video stream from "XXX(文件名)" 我用的是clion 解决方法: 把路径设为完整路径,如"C:/XXX&q ...
- JS AJAX 跨域
原因: 浏览器的同源策略,不允许AJAX 访问 其他接口 协议,域名,端口 一个不同 就跨域了 http 端口(80) https(443) 可以跨域的三个标签: 1. img : 打点统计,没有浏 ...
- 对迭代器操作的python 模块
import itertools import more_itertools 目前用到的more_itertools.ilen(range(10)) --->返回可迭代的数量.这回消耗迭代,小心 ...