公司项目用的IBM封装的json解析,此处采用阿里的fastjson进行演示,代码如下:

 package com.alphajuns.test;

 import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.junit.Test; import java.util.Map; /**
* @ClassName JsonToMapTest
* @Description
* @Author AlphaJunS
* @Date 2019/10/23 22:34
* @Version V1.0
**/
public class JsonToMapTest { /**
* @description json字符串转json数组
* @author AlphaJunS
* @date 2019/10/23
* @param []
* @return void
*/
@Test
public void run3() {
// json字符串
String jsonStr = "[{\"ID\":\"SX5-1001432\",\"PROCESSID\":\"OP2080\"}, "
+ "{\"ID\":\"SX5-1601110\",\"PROCESSID\":\"OP2150\"}, "
+ "{\"ID\":\"X03004-1023111\",\"PROCESSID\":\"OP1140\"}, "
+ "{\"ID\":\"X03004-1003012\",\"PROCESSID\":\"GOP260\"}, "
+ "{\"ID\":\"7903075118\",\"PROCESSID\":\"GOP260\"},{\"ID\":\"13MA-11011\"}]";
JSONArray jsonArray = JSON.parseArray(jsonStr);
// 遍历打印
printMethod(jsonArray);
} /**
* @description
* @author AlphaJunS
* @date 2019/10/23
* @param []
* @return void
*/
@Test
public void run2() {
// json字符串
String jsonStr = "{\"OPERATION\":[{\"ID\":\"SX5-1001432\",\"PROCESSID\":\"OP2080\"}, "
+ "{\"ID\":\"SX5-1601110\",\"PROCESSID\":\"OP2150\"}, "
+ "{\"ID\":\"X03004-1023111\",\"PROCESSID\":\"OP1140\"}, "
+ "{\"ID\":\"X03004-1003012\",\"PROCESSID\":\"GOP260\"}, "
+ "{\"ID\":\"7903075118\",\"PROCESSID\":\"GOP260\"},{\"ID\":\"13MA-11011\"}]}"; // json转map
Map map = (Map) JSON.parse(jsonStr);
System.out.println("map的value类型:" + map.get("OPERATION").getClass());
JSONArray jsonArray = (JSONArray) map.get("OPERATION");
printMethod(jsonArray);
} /**
* @description json字符串转map
* @author AlphaJunS
* @date 2019/10/23
* @param []
* @return void
*/
@Test
public void run1() {
String jsonStr= "{\"OPERATION\":{\"ID\":\"SX5-1001432\",\"PROCESSID\":\"OP2080\"}}";
// json转map
Map map = (Map) JSON.parse(jsonStr);
System.out.println("map的value类型:" + map.get("OPERATION").getClass());
JSONObject jsonObject = (JSONObject) map.get("OPERATION");
System.out.println("ID:" + jsonObject.get("ID") + ",PROCESSID:" + jsonObject.get("PROCESSID"));
} /**
* @description 遍历json数组打印
* @author AlphaJunS
* @date 2019/10/23
* @param [jsonArray]
* @return void
*/
public void printMethod(JSONArray jsonArray) {
// 遍历json数组
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
System.out.println("第" + (i + 1) + "个对象:");
System.out.println("ID:" + jsonObject.get("ID") + ",PROCESSID:" + jsonObject.get("PROCESSID"));
}
}
}

json字符串转map、json数组演示的更多相关文章

  1. json字符串转map

    <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</ar ...

  2. JSON字符串与Map互转

    //一.map转为json字符串 public static String map2jsonstr(Map<String,?> map){ return JSONObject.toJSON ...

  3. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值

    一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想的数据交换格式. 同时,json是jav ...

  4. VBScript把json字符串解析成json对象的2个方法

    这篇文章主要介绍了VBScript把json字符串解析成json对象的2个方法,本文通过MSScriptControl.ScriptControl和jscript实现,需要的朋友可以参考下 asp/v ...

  5. HttpServletResponse 返回的json数据不是json字符串,而是json对象

    今天在改一个bug 情况: 在spring boot中写了一个类Result ,用来统一封装 各个API响应结果 , 其中重写了toString()方法来返回 json字符串 . 在正常情况下,从其它 ...

  6. json字符串转成 json对象 json对象转换成java对象

    import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; 依赖包 <dependency> ...

  7. js将json字符串转化成json对象的方法

    js将json字符串转化成json对象的方法: JSON.parse(jsonObject)

  8. nodejs将JSON字符串转化为JSON对象

    如何将JSON字符串转化为JSON对象? JSON.parse(str)       JSON是javascript的一个内置对象,提供了转换JSON对象与字符串互相转换的方法: 问题来了,道理我都懂 ...

  9. 特殊字符导致json字符串转换成json对象出错

    在对数据库取出来的数据(特别是描述信息)里面含有特殊字符的话,使用JSON.parse将json字符串转换成json对象的时候会出错,主要是双引号,回车换行等影响明显,左尖括号和右尖括号也会导致显示问 ...

随机推荐

  1. Linux日常之命令awk

    参考:http://www.zsythink.net/archives/tag/awk/ 一. 命令awk简介 1. awk是一种编程语言,用于对文本和数据进行处理的 2. 具有强大的文本格式化能力 ...

  2. 《编译原理》LR 分析法与构造 LR(1) 分析表的步骤 - 例题解析

    <编译原理>LR 分析法与构造 LR(1) 分析表的步骤 - 例题解析 笔记 直接做题是有一些特定步骤,有技巧.但也必须先了解一些基本概念,本篇会通过例题形式解释概念,会容易理解和记忆,以 ...

  3. AspectJ注解支持

    <aop:aspectj-autoproxy/> 配置aspectj启动 AspectJAutoProxyBeanDefintionParser implements BeanDefini ...

  4. sysbench运行autogen.sh报错

    ./autogen.sh: 4: autoreconf: not found是在不同版本的 tslib 下执行 autogen.sh 产生.它们产生的原因一样,是因为没有安装automake 工具, ...

  5. linux LVM逻辑卷管理

    什么是LVM LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. ...

  6. spark 三种数据集的关系(二)

    一个Dataset是一个分布式的数据集,而且它是一个新的接口,这个新的接口是在Spark1.6版本里面才被添加进来的,所以要注意DataFrame是先出来的,然后在1.6版本才出现的Dataset,提 ...

  7. TensorFlow - 深度学习破解验证码 实验

    TensorFlow - 深度学习破解验证码 简介:验证码主要用于防刷,传统的验证码识别算法一般需要把验证码分割为单个字符,然后逐个识别,如果字符之间相互重叠,传统的算法就然并卵了,本文采用cnn对验 ...

  8. abd常用命令

    1.adb install -r 包名       ----------安装包,-r 替换原有apk安装 2.adb uninstall -k 包名       ---------------卸载包, ...

  9. Binding使用的属性、DataContext上下文绑定必须使用的情况

    RelativeSource属性 https://blog.csdn.net/yangwenxue1989/article/details/81624240 Binding时,如果明确知道数据源的Na ...

  10. CSS的水平居中和垂直居中

    水平居中如果不太熟悉盒子模型的话属实不太好理解,其实就是控制其他属性来让border之内的内容被控制在父容器中间就行了,最经典的就是使用{margin: 0  auto}了,控制其上下外边框为0,左右 ...