[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数据的转换)

JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。

上一篇文章中有这么一句,是后台的封装数据。

JSONObject jo = JSONObject.fromObject(map);
常见的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互转

[java]JsonObject与JsonArray转换

JSONObject.fromObject(map)(JSON与JAVA数据的转换)

JSONObject与JSONArray的使用3--Java对象属性的添加或删除(JsonConfig)

JSONObject.fromObject - JSON与对象的转换

JSONObject与JSONArray的使用