java json对象转map_java引用对象

java json对象转map_java引用对象1.由json字符串转换成Map对象如json字符串:{“contend”:[{“bid”:“22”,“carid”:“0”},{“bid”:“22”,“carid”:“0”}],“result”:100,“total”:2}下面直接附代码://json字符串Stringjsondata=”{\”contend\”:[{\”bid\”:\”22\”,\”carid\”:\”0\”},{\”bid\”:\”22\”,\”carid\”:\”0\”}],\”result\”:100,\”total\”

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

JSON.parseObject :是将Json字符串转化为相应的对象;JSON.toJSONString :则是将对象转化为Json字符串。
JSON.toJSON(user2) :把Java对象 转 JSON对象
JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
// {“sex”:“男”,“name”:“秦疆2号”,“age”:3}

public class fastJson {

    public static void main(String[] args) {

        //创建一个对象

        User user1 = new User("秦疆1号", 3, "男");
        User user2 = new User("秦疆2号", 3, "男");
        User user3 = new User("秦疆3号", 3, "男");
        User user4 = new User("秦疆4号", 3, "男");
        List<User> list = new ArrayList<User>();
        list.add(user1);
        list.add(user2);
        list.add(user3);
        list.add(user4);

        Map<String,Object> map =new HashMap<>();
        map.put("user1",user1);
        map.put("user2",user2);
        map.put("user3",user3);

        //JSON.toJSONString则是将对象转化为Json字符串。
        String mapString = JSON.toJSONString(map);
        System.out.println("json 格式的map"+mapString);
        //json格式的map{"user1":{"age":3,"name":"秦疆1号","sex":"男"},"user2":{"age":3,"name":"秦疆2号","sex":"男"},"user3":{"age":3,"name":"秦疆3号","sex":"男"}}

        //JSON.parseObject,是将Json字符串转化为相应的对象;
        JSONObject jsonObjectMap = JSON.parseObject(mapString);
        System.out.println("jsonObjectMap:"+jsonObjectMap);
//jsonObjectMap:{"user1":{"sex":"男","name":"秦疆1号","age":3},"user2":{"sex":"男","name":"秦疆2号","age":3},"user3":{"sex":"男","name":"秦疆3号","age":3}}

        //把json对象转换成map对象
        Map map1 = JSON.parseObject(mapString, Map.class);
        Object user11 = map1.get("user1");
        System.out.println("user11"+user11);

        System.out.println("*******Java对象 转 JSON字符串*******");
        String str1 = JSON.toJSONString(list);
        System.out.println("JSON.toJSONString(list)==>"+str1);
        //打印结果JSON.toJSONString(list)==>[{"age":3,"name":"秦疆1号","sex":"男"},{"age":3,"name":"秦疆2号","sex":"男"},{"age":3,"name":"秦疆3号","sex":"男"},{"age":3,"name":"秦疆4号","sex":"男"}]

        String str2 = JSON.toJSONString(user1);
        System.out.println("JSON.toJSONString(user1)==>"+str2);
        //JSON.toJSONString(user1)==>{"age":3,"name":"秦疆1号","sex":"男"}
         //为啥不是“{"age":3,"name":"秦疆1号","sex":"男"}” ?

        System.out.println("\n****** JSON字符串 转 Java对象*******");
        User jp_user1=JSON.parseObject(str2,User.class);
        System.out.println("JSON.parseObject(str2,User.class)==>"+jp_user1);

        System.out.println("\n****** Java对象 转 JSON对象 ******");
        JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
        System.out.println("(JSONObject) JSON.toJSON(user2)==>"+jsonObject1);
        //{"sex":"男","name":"秦疆2号","age":3}

        System.out.println("\n****** JSON对象 转 Java对象 ******");
        User to_java_user = JSON.toJavaObject(jsonObject1, User.class);
        System.out.println("JSON.toJavaObject(jsonObject1, User.class)==>"+to_java_user);

    }
}

JSON.toJSONString中序列化空字符串遇到的坑:

1.由json字符串转换成Map对象
如json字符串:{“contend”:[{“bid”:“22”,“carid”:“0”},{“bid”:“22”,“carid”:“0”}],“result”:100,“total”:2}

下面直接附代码:

//json字符串
String jsondata="{\"contend\":[{\"bid\":\"22\",\"carid\":\"0\"},{\"bid\":\"22\",\"carid\":\"0\"}],\"result\":100,\"total\":2}";
JSONObject obj= JSON.parseObject(jsondata);
//map对象
Map<String, Object> data =new HashMap<>();
//循环转换
 Iterator it =obj.entrySet().iterator();
 while (it.hasNext()) {
       Map.Entry<String, Object> entry = (Entry<String, Object>) it.next();
       data.put(entry.getKey(), entry.getValue());
 }
System.out.println("map对象:"+data.toString());

下面是输出内容:

{total=2, contend=[{“carid”:“0”,“bid”:“22”},{“carid”:“0”,“bid”:“22”}], result=100}

2.由Map对象转换成json字符串

//map对象
Map<String, Object> data =new HashMap<>();
String x =JSONObject.toJSONString(data);
System.out.println("json字符串:"+x);

下面是输出内容:

{“total”:2,“result”:100,“contend”:[{“carid”:“0”,“bid”:“22”},{“carid”:“0”,“bid”:“22”}]}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172462.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • struts2拦截器学习

    struts2拦截器学习一、什么是拦截器?提到拦截器,使我不得不想起武侠剧中劫匪们常说的一句话:“此山是我开,此树是我栽,要打此路过,留下买路财!”。难不成程序中也有“打劫”的,说的没错,拦截器就是个打劫的。在现实生活中,劫匪劫的大都是钱财,当然也有别的什么,那么程序中的“劫匪”劫的又是什么呢?或者说程序中为什么需要它?在我们的日常编程中少不了写一些重复的代码,例如在一个地方中写了一段代码,后来发现这段代码在其

    2022年10月7日
  • 想入行3D游戏建模,看完这个你还敢想吗?

    想入行3D游戏建模,看完这个你还敢想吗?所有行业都是一样的,没有什么容易的,只不过这一行是偏向于技术的,一个有好的建模师月薪10k+是很常见的,这个需要有自己刻苦学习的成果。游戏建模前景在游戏模型行业,你基本不用担心找不到工作,因为游戏模型师人才缺口非常大。举个例子:游戏制作公司的人员配比大多数是这样的:比如100人的三维制作组,可能有60人在做模型贴图,10个人在K动画。只要你保证技能在手,一定是抢手的人才。在几年前游戏建模这个行业不仅仅缺人才,甚至连新手都非常稀缺,那个时候公司愿意招聘实习生,培养他们然后给公司干活,但是工资一定不会给开.

    2022年5月12日
  • Pycharm Terminal窗口运行程序「建议收藏」

    Pycharm Terminal窗口运行程序「建议收藏」anaconda配置好环境(一系列的准备操作,我不会,老师帮我弄的)最开始:base是一个根目录,共用环境在远端创建好一个自己的环境:condacreate-n环境名激活环境:sourceactivate环境名进入环境后下载的包才是在自己的目录下,如果在base那块下载会影响别人的环境下载包指令:pipinstall包名进入你远程环境下的目录:cd目录(这些都要配好,还是我不会)目录的话可以这样找运行:python文件名.py…

    2022年10月27日
  • Linux查看java进程路径

    Linux查看java进程路径1.找到进程IDps-ef|grepjava2.进入进程目录cd/proc/进程ID3.查看cwd路径找到cwd对应的路径就是jar包的路径以下是我的操作截图

    2022年8月24日
  • java开发中各种中文乱码问题解决策略「建议收藏」

    java开发中各种中文乱码问题解决策略「建议收藏」一、request获取表单提交中文数据乱码问题的解决post提交方式处理中文方法通过post方式提交form表单时,首先会把数据放到request缓冲区里面,request缓冲区默认编码是iso8859-1,这个编码不支持中文,所以解决这个问题的方法就是设置request缓冲区的编码,即request.setCharacterEncoding(“utf-8”);2、get提交方式处理中

    2022年7月8日
  • 大数据面试题(六)—-HBASE 面试题

    大数据面试题(六)—-HBASE 面试题版权声明:本文为CSDN博主「北京小辉」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/silentwolfyh/article/details/103864901———————————————————————————————————“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅…

    2022年5月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号