JSONObject response=new new JSONObject(); // 括号内加 true 可以对内部进行排序 response.clear(); // 清除内容 // 将 map 转换成 jsonobject,其中 map 为 map 类型: JSONObject records=new JSONObject(map); //JSON 形式字符串转 nutmap String result = testFeignRemote.queryResult(requestStr); map = new NutMap(result); 或者 map=JSON.parseObject(result ,NutMap.class); //map 先转 json 串再转成 json 对象 NutMap responseMap = changeResponse(map); String jsonString = JSON.toJSONString(responseMap); response = JSONObject.parseObject(jsonString); Map<String, Object> messageMap = JSON.parseObject(String.valueOf(message), Map.class);
有不同的 json 解析包,但用法大同小异,注意其中方法的写法区别。
例如:fastjson 与 sf.json,sf.json 依赖时注意事项:
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>
如果 classifier 不写的话可能会出错。
intValue()方法可用来获取 BigInt 值的 int 值
科普向:
JSONObject-lib 包是一个 beans,collections,maps,java arrays 和 xml 和 JSON 互相转换的包。
JSONObject(); 创建一个空的 JSONObject 对象
JSONObject(boolean isNull); 创建一个是否为空的 JSONObject 对象
普通方法如下:
fromBean(Object bean); 静态方法, 通过一个 pojo 对象创建一个 JSONObject 对象
fromJSONObject(JSONObject object); 静态方法, 通过另外一个 JSONObject 对象构造一个 JSONObject 对象
fromJSONString(JSONString string); 静态方法, 通过一个 JSONString 创建一个 JSONObject 对象
toString(); 把 JSONObject 对象转换为 json 格式的字符串
iterator(); 返回一个 Iterator 对象来遍历元素
接下来就是一些 put/get 方法,需要普通的 get 方法和 pot 方法做一下强调说明,API 中是这样描述的:
A get method returns a value if one can be found, and throws an exception if one cannot be found. An opt method returns a default value instead of throwing an exception, and so is useful for obtaining optional values.
JSONArray:A JSONArray is an ordered sequence of values.
是一个 final 类, 继承了 Object,实现了 JSON 接口
构造方法如下:
JSONArray(); 构造一个空的 JSONArray 对象
普通方法如下:
fromArray(Object[] array); 静态方法, 通过一个 java 数组创建一个 JSONArray 对象
fromCollection(Collection collection); 静态方法, 通过 collection 集合对象创建一个 JSONArray 对象
fromString(String string); 静态方法, 通过一个 json 格式的字符串构造一个 JSONArray 对象
toString(); 把 JSONArray 对象转换为 json 格式的字符串
iterator(); 返回一个 Iterator 对象来遍历元素
接下来同样是 put/get 方法……
XMLSerializer:Utility class for transforming JSON to XML an back.
一个继承自 Object 的类
构造方法如下:
XMLSerializer(); 创建一个 XMLSerializer 对象
普通方法如下:
setRootName(String rootName); 设置转换的 xml 的根元素名称
setTypeHintsEnabled(boolean typeHintsEnabled); 设置每个元素是否显示 type 属性
write(JSON json); 把 json 对象转换为 xml, 默认的字符编码是 UTF-8,