[java]JsonObject与JsonArray转换
Posted 你好,摸了么
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[java]JsonObject与JsonArray转换相关的知识,希望对你有一定的参考价值。
备忘一下,首先
这是一个JsonArrayStr,他可以转换为JsonArray。
["name":"a1","name":"a2"]
这是一个JsonObjectStr,他可以转换为JsonObject。
"result":["name":"a1","name":"a2"]
JsonObject转换为java对象、JsonArray转换为Java对象
JsonObject的value为JsonArray,对应的java类型为List。在案例中,java代码如下(这里用的内部类)
@Data
@AllArgsConstructor
@NoArgsConstructor
class AList
private List<PersonA> result;
@Data
@AllArgsConstructor
@NoArgsConstructor
class PersonA
private String name;
- 使用fastjson转换jsonStr为java对象,完整代码如下
public class JsonTest
public static void main(String[] args)
String strArray ="[\\"name\\":\\"a1\\",\\"name\\":\\"a2\\"]";
String strObject ="\\"result\\":[\\"name\\":\\"a1\\",\\"name\\":\\"a2\\"]";
// parseArray保证属性key一致即可正确转换
List<PersonA> personAList = JSON.parseArray(strArray, PersonA.class);
// parseObject需要保证属性key一致即可正确转换
AList aList = JSON.parseObject(strObject, AList.class);
@Data
@AllArgsConstructor
@NoArgsConstructor
class AList
private List<PersonA> result;
@Data
@AllArgsConstructor
@NoArgsConstructor
class PersonA
private String name;
- 使用hutool转换jsonStr为java对象,核心代码如下
List<PersonA> personAList = JSONUtil.toList(JSONUtil.parseArray(strArray), PersonA.class);
JsonArray转换为JsonObject
已知一个JsonArrayStr,内容为。
["name":"a1","name":"a2"]
不可以直接parseObject,JsonObject格式为,且含有键值对。
使用以下方法将JsonArrayStr转换为JsonObject对象:
- 使用fastjson
JSONArray array = JSON.parseArray(strArray);
JSONObject jsonObject = new JSONObject();
jsonObject.put("result",array);
- 使用hutool
JSONArray array = JSONUtil.parseObj(strArray);;
JSONObject jsonObject = new JSONObject();
jsonObject.put("result",array);
即将JsonArrayStr转换为JsonObjectStr
"result":["name":"a1","name":"a2"]
真的搞不懂,为什么上游传一个json值下来,直接传一个object不行么?不行么?不行么???????
JsonArrayStr 转换为 JsonObjectStr
有什么好说的,加括号,加键。
推荐使用hutool的StrUtil.wrap()
String strArray = "[\\"name\\":\\"a1\\",\\"name\\":\\"a2\\"]";
String strObject = StrUtil.wrap(strArray, "\\"result\\":", "");
最后得到的值为
"result":["name":"a1","name":"a2"]
JSONObject.fromObject(map)(JSON与JAVA数据的转换)
上一篇文章中有这么一句,是后台的封装数据。
常见的java代码转换成json
1. List集合转换成json代码
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
2. Map集合转换成json代码
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);
3. Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("[‘json‘,‘is‘,‘easy‘]" );
转载自:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html 感谢分享!
以上是关于[java]JsonObject与JsonArray转换的主要内容,如果未能解决你的问题,请参考以下文章
java fastjson:Map与json以及JSONObject ,JSONObject与String互转
JSONObject.fromObject(map)(JSON与JAVA数据的转换)
JSONObject与JSONArray的使用3--Java对象属性的添加或删除(JsonConfig)