首页 > 编程语言 >JSON格式字符串与Java对象之间的转换

JSON格式字符串与Java对象之间的转换

时间:2022-09-22 13:00:16浏览次数:54  
标签:map Java String JSONObject List JSON 字符串 nodes

0.加入allibab依赖


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

1.JSON 与 各种格式的转换


//1.String --> Json对象
JSONObject jsonObject = JSONObject.parseObject(jsonString);
//获取JSON的键值对
jsonObject.getString("name");
​
//2.JSON --> string
String jsonString = jsonObject.toJSONString();
​
//3.JSON --> List<对象>
List<Conf> confList = JSONArray.parseArray(s1, Conf.class);
​
//4.List<对象> -- > JSON
​

示例 String-》JSON

        System.out.println("s:"+s);
        //s:{"nodes":{"bind":"ip","port":"9876","loglevel":"warning","requirepass":"pass123"}}
        
        //转换成json格式
        JSONObject json = JSONObject.parseObject(s);
        System.out.println("json"+json);
        //json{"nodes":{"bind":"ip","port":"9876","loglevel":"warning","requirepass":"pass123"}}
       
        //获取其中的键值对
        JSONObject nodes = JSONArray.parseObject(json.getString("nodes"));
        System.out.println("node"+nodes);
        //node{"bind":"ip","port":"9876","loglevel":"warning","requirepass":"pass123"}
        nodes.getString("port");
        //9876

2.List <--> JSON

{
    "deploy-type":"single",
    "nodes":[
        {
            "bind":"172.29.212.142",
            "port":"9876",
            "loglevel":"warning",
            "requirepass":"pass123"
        },
        {
            "bind":"172.29.212.142",
            "port":"9876",
            "loglevel":"warning",
            "requirepass":"pass123"
        }
    ]
}

思路:分为两步拿数据:1.JSON有多个Object,Object(nodes)中包含数组 2.先拿nodes的value字符串(实际为Json格式的数据) 3.nodes的值的字符串Json数据再转为List

示例 JSON--》List:把上面的JSON数据 赋值为String sss;

      /**
      * 取JSON的value值
      */
    void JsonToObjectToArray(){
    // ------------------获取object的value值--------------------
        JSONObject jsonObject = JSONObject.parseObject(sss);
        String nodes = jsonObject.getString("nodes");
        System.out.println(nodes);
    // -------------把value值转List--------------
        JsonToList(nodes);
    }
​
    /**
     * 提取JSON的数组值,转为List
     * @param s1  格式为数组的json数据  [{"bind":"172.29.212.142"},{ "bind":"172.29.212.142"}]
     */
    void JsonToList(String s1) {
        List<Conf> confList = JSONArray.parseArray(s1, Conf.class);
        String ip1 = confList.get(0).getBind()+":"+confList.get(0).getPort();
        System.out.println(ip1);
        String ip2 = confList.get(1).getBind()+":"+confList.get(1).getPort();
        System.out.println(ip2);
    }

示例 List--》Json

思路:把数据存到一个List集合,返回


private List<Serviceinfo> serviceinfo;

3.map转为json(JSONObject)


//JSON转map
JSONObject  jsonObject = JSONObject.parseObject(str);
Map<String,Object> map = (Map<String,Object>)jsonObject;   //json对象转Map
​
//map转JSON
String jsonString = JSON.toJSONString(map);

实例 map-》Json


       Map map = new HashMap();
       map.put("id","09");
       map.put("name","li");
       map.put("age","10");
       String jsonString = JSONObject.toJSONString(map);
       System.out.println(jsonString);
​
输出结果展示:
{"name":"li","id":"09","age":"10"}

 

标签:map,Java,String,JSONObject,List,JSON,字符串,nodes
From: https://www.cnblogs.com/lixue333/p/16718868.html

相关文章

  • Java 加载、编辑和保存WPS表格文件(.et/.ett)
    WPS表格文件是金山开发的专门用于处理表格数据的Office工具,属于WPSOffice中WPS文字、WPS表格和WPS演示三大功能模块之一。通常以.et和.ett作为文件后缀。我们在通过后端来......
  • java超大文件上传和断点续传的实现
    ​我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。首先我们需要了解的是上传文件三要素:1.表单提交方式:p......
  • JavaScript 的“this”关键字解释和揭秘
    JavaScript的“this”关键字解释和揭秘这这个关键字是一把双刃剑——它可能是复杂错误的来源——一旦你知道它是如何工作的,它也可以让你作为开发人员的生活更轻松。这......
  • 如何使用 JavaScript 解决二进制间隙
    如何使用JavaScript解决二进制间隙在编码训练营4个月后,我决定开始做数据结构和算法问题,为我的技术面试做准备。我使用的一些网站是:可编码性黑客等级有什么比......
  • JavaScript 进阶
    JavaScriptJavaScript是一种运行在客户端的脚本语言。运行过程由js引擎来逐行解析并执行。用处:表单动态验证、网页特效、服务端开发(Node.js)、桌面程序(Electron)......
  • 代码审计(Java)——WebGoat_InsecureDeserialization
    level-5找到java文件,可以看到传入的token经过64解码后输入导对象输入流中,然后没有加限制直接readObject进行了反序列化操作,确实存在漏洞点~packageorg.owasp.web......
  • 一道测试Java值传递的题目
    请给出下列代码的执行结果:publicclassT3{publicstaticvoidmain(String[]args){T3t3=newT3();t3.first();}publicvoidfir......
  • javascript的void
    void 关键字:该操作符指定要计算一个表达式但是不返回值。href="#"与href="javascript:void(0)"的区别# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。而jav......
  • JavaScript JSON
    JSON是用于存储和传输数据的格式。JSON通常用于服务端向网页传递数据。JSON是一种轻量级的数据交换格式。JSON语法规则数据为键/值对。数据由逗号分隔。大括......
  • shell编程类-随机字符串
    1.使用循环在/atguigu目录下创建10个txt文件,要求文件名称有6位随机小写字母加固定字符串(_gg)组成,例如:pzjebg_gg.txt.     ......