Java json 字符串处理
时间:2019-01-18
本文章向大家介绍Java json 字符串处理,主要包括Java json 字符串处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
json 字符串介绍:
示例:
"adslot":{"id":"3169","bidfloor":10.0,"bidfloorcur":"CNY","count":"1","instl":0,
"banner":{"w":1080,"h":1920,"pos":0,"battr":[]},
"nativ":null,"video":null,"is_splash_screen":1,
"bitc":["1","2"],
"request_render_type":"JSON","deeplink":"UNSUPPORT"}
json 中括号代表含义;
{}:代表一个对象
[]:代表一个数组
"" 双引号内是属性或值
: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
针对json 字符串的解析:
public void parseResDspjson(Map<String, String> map, String jsonStr, String parent_name, boolean isArray, List<Map<String, String>> list) {
try {
if (null != map && null != jsonStr && !"".equals(jsonStr)
&& jsonStr.length() > 1) {
if (isArray) {
for (int i = 0; i < reqJson.length(); i++) {
Object value = reqJson.get(i);
// 1.数组里面是对象
if (value instanceof JSONObject) {
parseResDspjson(map, value.toString(),
parent_name, false, list);
} else if (value instanceof JSONArray) {
// 1.数组里面是对象
parseResDspjson(map, value.toString(),
parent_name, true, list);
} else {
// 1.数组里面是字符串
if (sb.length() > 0)
sb.append(",");
sb.append(value.toString().trim());
if (i == reqJson.length() - 1) {
map.put(parent_name, sb.toString());
}
}
}
} else {
JSONObject reqJson = new JSONObject(jsonStr);
Iterator<?> keys = reqJson.keys();
StringBuffer sb = new StringBuffer();
while (keys.hasNext()) {
String key = keys.next().toString();
Object value = reqJson.get(key);
sb.delete(0, sb.length());
if (null != parent_name && !"".equals(parent_name)) {
sb.append(parent_name + "_" + key);
} else {
sb.append(key);
}
if (value instanceof JSONObject) {
parseResDspjson(map, value.toString(), sb.toString(), false, list);
} else if (value instanceof JSONArray) {
parseResDspjson(map, value.toString(), sb.toString(), true, list);
} else {
map.put(sb.toString(), value.toString().trim());
}
}
}
}
} catch (Exception e) {
}
}
引入依赖:
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.3</version>
</dependency>
- 基于Xgboost + LR + Keras 建模评估用户信用状态
- canvas实现拖动页面时显示窗口视频
- 鼠标滚轮事件介绍
- Understanding delete
- objC与js通信实现--WebViewJavascriptBridge
- 简单易学的机器学习算法——岭回归(Ridge Regression)
- QQ空间(日志、说说、个人信息)python爬虫源码(一天可抓取 400 万条数据)
- 文本分类实战: 机器学习vs深度学习算法对比(附代码)
- ReactJS分析之入口函数render
- 简单易学的机器学习算法——SVD奇异值分解
- AngularJS源码分析之依赖注入$injector
- 使用yield进行异步流程控制
- 【Java提高十七】Set接口集合详解
- 如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言公交地铁路线网络图实现数据挖掘实战
- R语言风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计
- R语言机器学习实战之多项式回归
- 5000字!带你零距离接触websocket!
- 使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用
- 玩转StyleGAN2模型:教你生成动漫人物
- R语言时间序列数据指数平滑法分析交互式动态可视化
- 再见Excel!最强国产开源在线表格Luckysheet走红GitHub
- R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化
- R语言多分类logistic逻辑回归模型在混合分布模拟单个风险损失值评估的应用
- sas神经网络:构建人工神经网络模型来识别垃圾邮件
- 图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
- 手写dubbo框架9-SPI实现
- R语言非参数模型厘定保险费率:局部回归、广义相加模型GAM、样条回归
- VsCode插件之Live Serve探秘.(上)