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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux通配符主要有_linux通配符和正则表达式

    linux通配符主要有_linux通配符和正则表达式首先,通配符是shell提供的一种路劲扩展功能。在linux的shell中,要区分通配符和正则表达式的区别。简单理解,通配符是用来匹配文件名的。而正则表达式是用来匹首先,通配符是shell提供的一种路劲扩展功能。在linux的shell中,要区分通配符和正则表达式的区别。简单理解,通配符是用来匹配文件名的。而正则表达式是用来匹配文件内容的。了解通配符,首先,需要熟记通配符中的元字符:*:表示匹配任…

    2022年9月18日
    2
  • Ubuntu下很给力的下载工具

    Ubuntu下很给力的下载工具

    2021年12月1日
    90
  • Vue:router的beforeEach是什么「建议收藏」

    Vue:router的beforeEach是什么「建议收藏」来自:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局守卫正如其名,vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的,单个路由独享的,或者组件级的。记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察$route对象来应对这…

    2022年6月17日
    27
  • pycharm 打包发布程序_pycharm打包成可执行文件

    pycharm 打包发布程序_pycharm打包成可执行文件安装依赖包pipinstallpyinstaller打包指令#到指定文件,终端输入,不带控制台的打包Pyinstaller-F-wmain.py不能显示print信息#到指定文件,终端输入Pyinstaller-Fmain.py去除-w可以显示print信息针对弹出的控制台闪退importosos.system(“pause”)…

    2025年7月24日
    2
  • 计算机专业男人喜欢什么样的女人,说实在的,其实男人真正喜欢的女人,就三个特征…

    计算机专业男人喜欢什么样的女人,说实在的,其实男人真正喜欢的女人,就三个特征…男人和女人有什么不同?大概是后者的世界里只有爱情,前者的世界里除了爱情,还有对金钱与权力的渴望。人比人气死人。有些女人从来都不缺追求者,有些女人从来都没有追求者,很多时候并不明白,她到底比她差在哪里?这还不算扎心的,有些女人绞尽脑汁,都没能守住自己的爱情,而有些女人看着都没怎么费力,却保卫了自己的爱情。也许我们都要深思,那些一直“幸运”的女人到底有什么秘诀。对于感情,女人一般会有的疑问,无非两个。…

    2022年7月25日
    45
  • Java基础篇:什么是hashCode 以及 hashCode()与equals()的联系

    Java基础篇:什么是hashCode 以及 hashCode()与equals()的联系

    2021年4月10日
    150

发表回复

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

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