JSON简介

这篇具有很好参考价值的文章主要介绍了JSON简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.什么是json

JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。目前,Json处于数据交换语言的王者地位.

1.1 json的特点

(1)json是一种轻量级的数据交换格式
(2)json采用完全独立于计算机语言和操作系统的平台,不同的编程语言和操作系统json数据是一致的
(3)json易于阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输效率)

1.2 xml和json的区别

(1)xml:

1.json与js对象的转换

    <script type="text/javascript">
        // js对象
        var obj = { name: "亚瑟", age: 23, address: "上海" };
        document.write(obj.name + "<br/>");
        var obj2 = {
            users: [{ name: "鲁班", age: 21, address: "北京" },
            { name: "后裔", age: 26, address: "广州" }]
        };
        document.write(obj2.users[0].address + "<br/>");
        // json转换为js对象(方式一)
        var test1 = '{"name":"后裔","age":25}';
        var obj3 = eval("(" + test1 + ")"); //必须带圆括号
        document.write("name=" + obj3.name + ",age=" + obj3.age + "<br/>");
        // json转换为js对象(方式二)
        var obj4 = JSON.parse('{ "name":"李白", "age":18, "address":"北京" }');
        document.write(obj4.name + "<br/>");
    </script>

注意:
(1)有些浏览器不支持JSON.parse这个方法,可以到官网下载json2.js添加到你的hlml中就可以了。
(2)为什么要 eval这里要添加 eval(“(” + test1 + “)”)//”呢?
原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性
的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将 括号内的表达式(expression)转化为对象,而不是作为语(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始
和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval(“{}”); // return undefined
alert(eval(“({})”);// return object[Object]

2.Json与Java对象的转换

(1)使用 alibaba 的 fastJson

  <!--json-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>

(2)实例

public class MyJson {
    public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}";
    public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}";
    public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]";
 
    public static void main(String[] args) {
        User user = new User();
        user.setName("xiaohong");
        user.setPassword("654321");
        List<User> list = new ArrayList<User>();
        list.add(user);
        list.add(new User("xixi","789"));
        Map map = new HashMap();
        map.put("001",user);
        map.put("002",list);
        // 1. json字符串 转换为 java 对象
 
        // toJsonString  - java对象转换为json字符串
        System.out.println(JSONObject.toJSONString(user));
        System.out.println(JSONObject.toJSONString(list));
        System.out.println(JSONObject.toJSONString(map));
 
        // toJavaObject - json字符串转换为java对象
        System.out.println(JSONObject.parseObject(jsonuser,User.class));
        List list1 = JSONObject.parseObject(jsonlist, List.class);
        for(int i=0;i<list1.size();i++) {
            System.out.println(JSONObject.parseObject(JSONObject.toJSONString(list1.get(i)),User.class));
        }
        Map map1 = JSONObject.parseObject(jsonmap, Map.class);
        Iterator iterator = map1.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry entry= (Map.Entry) iterator.next();
            System.out.println("key :"+entry.getKey()+"   value: " + entry.getValue());
        }
 
        // Json  -- 实体类转换为json字符串
        System.out.println(JSON.toJSONString(user));
        System.out.println(JSON.toJSONString(list));
        System.out.println(JSON.toJSONString(map));
 
        // json  -- json 转 java对象
        System.out.println(JSON.parseObject(jsonuser,User.class));
        List list2 = JSON.parseObject(jsonlist, List.class);
        for(int i=0;i<list2.size();i++) {
            System.out.println(JSON.parseObject(JSON.toJSONString(list1.get(i)),User.class));
        }
        Map map2 = JSON.parseObject(jsonmap, Map.class);
        Iterator iterator2 = map1.entrySet().iterator();
        while (iterator2.hasNext()) {
            Map.Entry entry= (Map.Entry) iterator2.next();
            System.out.println("key :"+entry.getKey()+"   value: " + entry.getValue());
        } } }

3.使用Java修改json字符串(JSON解析库使用Jackson)

(1)替换json字符串,指定的值

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"code\":0,\"msg\":\"\",\"count\":3042,\"data\":[{\"UPN\":\"WR1.04.046.0166300023032100120230316104\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-1\",\"CreateTime\":\"2023-10-23 08:49:00\"},{\"UPN\":\"WR1.04.046.0166300023032100120230316512\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-2\",\"CreateTime\":\"2023-10-23 08:49:12\"},{\"UPN\":\"WR1.04.046.0166300023032100120230316434\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-3\",\"CreateTime\":\"2023-10-23 08:49:24\"},{\"UPN\":\"WR1.04.046.0166300023032100120230316999\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-5\",\"CreateTime\":\"2023-10-23 09:05:02\"},{\"UPN\":\"WR1.04.042.0074273022120800120221205927\",\"PN\":\"1.04.042.0074\",\"Lot\":null,\"DC\":\"20221205\",\"Qty\":2730,\"PositionCode\":\"1-1-1-3\",\"CreateTime\":\"2023-10-25 12:51:21\"}]}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        jsonObject.put("msg", "替换后的值");
        System.out.println(jsonObject.toJSONString());
    }
}

(2)替换json字符串的key的值文章来源地址https://www.toymoban.com/news/detail-671550.html

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"code\":0,\"msg\":\"\",\"count\":3042,\"data\":[{\"UPN\":\"WR1.04.046.0166300023032100120230316104\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-1\",\"CreateTime\":\"2023-10-23 08:49:00\"},{\"UPN\":\"WR1.04.046.0166300023032100120230316512\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-2\",\"CreateTime\":\"2023-10-23 08:49:12\"},{\"UPN\":\"WR1.04.046.0166300023032100120230316434\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-3\",\"CreateTime\":\"2023-10-23 08:49:24\"},{\"UPN\":\"WR1.04.046.0166300023032100120230316999\",\"PN\":\"1.04.046.0166\",\"Lot\":null,\"DC\":\"20230316\",\"Qty\":3000,\"PositionCode\":\"1-1-27-5\",\"CreateTime\":\"2023-10-23 09:05:02\"},{\"UPN\":\"WR1.04.042.0074273022120800120221205927\",\"PN\":\"1.04.042.0074\",\"Lot\":null,\"DC\":\"20221205\",\"Qty\":2730,\"PositionCode\":\"1-1-1-3\",\"CreateTime\":\"2023-10-25 12:51:21\"}]}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        int count = jsonObject.getIntValue("count");
        jsonObject.put("total", count);
        jsonObject.remove("count");
        System.out.println(jsonObject.toJSONString());
    }
}

到了这里,关于JSON简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JSON简介

    JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易

    2024年02月11日
    浏览(19)
  • JSON简介与使用

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于 JavaScript 语言的标准语法,但独立于语言和平台,被广泛应用于多种编程环境间的数据交互。JSON的设计理念是既方便人类阅读又利于机器解析,它通过简洁的文本形式来表达复杂的数据结构。 JSON的基本结构与

    2024年02月22日
    浏览(26)
  • Json Schema简介和Json Schema的高性能.net实现库 LateApexEarlySpeed.Json.Schema

    Json schema是一种声明式语言,它可以用来标识Json的结构,数据类型和数据的具体限制,它提供了描述期望Json结构的标准化方法。 利用Json Schema, 你可以定义Json结构的各种规则,以便确定Json数据在各个子系统中交互传输时保持兼容和一致的格式。 一般来说,系统可以自己实现

    2024年02月04日
    浏览(29)
  • javascript二维数组(20)JSON对象

    在JavaScript中,JSON对象是一种数据格式,用于存储和传输数据。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 JSON对象由键值对组成,其中键是字符串,值可以是字符串、数字、布尔值、null、数组或另一个J

    2024年02月07日
    浏览(38)
  • JavaScript:JSON、三种包装类

    我们希望可以将一个对象在不同的语言中进行传递, 以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式 JSON(JavaScript Object Notation) - JS的对象表示法 - JSON实际上就是一个字符串,它的语法格式和JS对象的语法基本上是一致 通过JSON表示的对象可以在任意的语言

    2024年02月22日
    浏览(25)
  • javaScript——json字符串详解

    本篇文章将讲解,什么是 json字符串 , json字符串 与字符串数组的相互转换, json字符串 与字符串数组的区别 JSON 字符串(JSON String)是一种特定格式的文本字符串,用于表示数据。JSON 是 JavaScript Object Notation 的缩写,它是一种轻量级的数据交换格式,通常用于将数据从一个

    2024年02月08日
    浏览(26)
  • JavaScript对象与JSON格式的转换

    在Web开发中,JavaScript和JSON是两个经常用到的概念。JavaScript是一种脚本语言,可以用来操作网页的内容和行为,而JSON是一种轻量级的数据交换格式,通常用于在客户端和服务器之间传递数据。在Web应用程序中,经常需要将JavaScript对象转换为JSON格式,或将JSON格式转换为JavaS

    2024年02月10日
    浏览(32)
  • JWT(Json Web Token)简介

    一般的Token认证流程是这样的:         1. 用户输入用户名和密码,发送给服务器。          2. 服务器验证用户名和密码,正确的话就返回一个签名过的token(token 可以认为就是个长长的字符串),浏览器客户端拿到这个token。          3. 后续每次请求中,浏览器

    2023年04月08日
    浏览(24)
  • Jmeter常用断言之JSON断言简介

    JSON断言可以对服务器返回的JSON文档进行验证。 JSON断言有两种使用模式: 1.根据JSONPath能否在JSON文档中找到路径; 2.根据JSONPath提取值并对值进行验证。 结果判定 :若文档格式为非JSON则断言失败;找不到路径断言失败;提取值与预期值不一致断言失败。 根据需要可在【测试

    2024年02月05日
    浏览(25)
  • 第十一篇JavaScript JSON与AJAX

    在JavaScript中,JSON(JavaScript Object Notation)是一种常用的数据格式,用于存储和交换数据。它基于JavaScript的对象字面量语法,但具有更宽松的语法规则。 json 是一种轻量级的数据交换格式 。 JSON使用键值对的方式表示数据,其中键是一个字符串,值可以是字符串、数字、布尔

    2024年04月16日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包