在java 程序中,经常会涉及到各种变量值提取的问题,下面给出简单的示例及说明:
JSON实际上也是键值对("key":"value"),key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)
value如果是字符串,用jsonobj.getString("key")获取
value如果是数字,用jsonobj.getIntValue("key"), jsonobj.getFloatValue("key"),jsonobj.getInteger("key")等基本数据类型及其包装类的方法获取
value如果是布尔值,用jsonobj.getBoolean("key"), jsonobj.getBooleanValue("key")获取
value如果是数组,用jsonobj.getJSONArray("key")获取
value如果是Object对象,用jsonobj.get("key")获取
value如果是JSONObject对象,用jsonobj.getJSONObject("key")获取
示例代码:文章来源:https://www.toymoban.com/news/detail-617729.html
// result示例 (json字符串形式)
// {"code":"ok","data":{"msg":"success","code":200,"data":{"total":1,"cmd_groups":["SOQE"]}}}
// 将json字符串转换成jsonObject对象
JSONObject jsonObject = JSONObject.parseObject(result);
// 方法1:按层级依次取值
JSONObject subData = data.getJSONObject("data");
JSONArray cmdGroups = subData.getJSONArray("cmd_groups");
log.info("data: {}, cmdGroups: {}", data, cmdGroups);
// 方法2: 链式取值
JSONArray demo = jsonObject.getJSONObject("data").getJSONObject("data").getJSONArray("cmd_groups");
log.info("demo: {}", demo);
参考:https://www.bbsmax.com/A/qVdebxYgzP/文章来源地址https://www.toymoban.com/news/detail-617729.html
到了这里,关于java解析多层嵌套json字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!