json——一探究竟

2023-11-01 09:41
文章标签 json 究竟 一探

本文主要是介绍json——一探究竟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、json是什么

json——JavaScript Object Notation(JavaScript对象表示)的简写,是一种轻量级的文本数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据

2、json和xml的对比

json和xml作为常用的两种存储格式,有什么不同呢?
下面同样的数据存储成Json和xml生成的结果如下
在这里插入图片描述
json:
在这里插入图片描述
xml:
在这里插入图片描述
json作为后来者,肯定是吸取了前任的各种经验,因此json和xml有着一些相同的优点:

1、可读性好,结构清晰
2、扩展性高
3、都跨平台,可作为数据传输格式

同样的,作为后来者,json肯定有着xml一些没有的特点和优势,例如:

1、数据格式简单,易读易写,且数据都是压缩的,文件较小,便于传输。
2、json解析难度较低,而xml需要循环遍历DOM进行解析,效率较低。
3、服务端和客户端可以直接使用json,便于维护,例子《python实现RPC》。而不同客户端解析xml可能使用不同方法。
4、json 已成为当前服务器与 web 应用之间数据传输的公认标准。
5、json常常作为引擎中的数据格式,用于数据存储,比如UE4就大量使用了以json为格式的数据进行存储、交互

尽管如此,xml仍有它独有应用领域:
1、xml格式较为严谨,可读性更强,更易于拓展,可以良好的做配置文件。
2、出现较早,在各个领域有广泛的应用,具有普遍的流行性。

3、用python生成json格式的数据

# -*- coding: utf-8 -*-
import os
import jsonrootPath = "F:\PythonXSLWorkSpace\PythonBaseUse\JsonUse"def getContent():Human = [{'name': 'Hong', 'age': 18, 'sex': 'boy'},{'name': 'Xu', 'age': 18, 'sex': 'girl'},{'name': 'Wu', 'age': 30, 'sex': 'girl'}]return Human# write file
def createFile(filePath, content):with open(filePath, 'w+') as f:f.write(json.dumps(content))# read file
def readFile(path):if os.path.exists(path):with open(path) as file_object:contents = file_object.read()return json.loads(contents)else:print('the path is not exists')fileName = os.path.join(rootPath, "jsonFile.json")
createFile(fileName, getContent())
decodeContent = readFile(fileName)
for i in range(0, len(decodeContent)):print(decodeContent[i])

简单描述上述代码作用:将Human转为json格式,并存储到"jsonFile.json" 中,运行结果如下
在这里插入图片描述

4、参考文章

json从立地到成佛

这篇关于json——一探究竟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/322119

相关文章

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

python中json.dumps和json.dump区别

《python中json.dumps和json.dump区别》json.dumps将Python对象序列化为JSON字符串,json.dump直接将Python对象序列化写入文件,本文就来介绍一下两个... 目录1、json.dumps和json.dump的区别2、使用 json.dumps() 然后写入文

Java中JSON字符串反序列化(动态泛型)

《Java中JSON字符串反序列化(动态泛型)》文章讨论了在定时任务中使用反射调用目标对象时处理动态参数的问题,通过将方法参数存储为JSON字符串并进行反序列化,可以实现动态调用,然而,这种方式容易导... 需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。方案一:将方法参数存成jsON字

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

特殊JSON解析

一般的与后台交互;都会涉及到接口数据的获取;而这里的数据一般情况就是JSON 了;JSON 解析起来方便;而且数据量也较小一些;所以JSON在接口数据返回中是个很不错的选择。 下面简单说下JSON解析过程中的一些案例: 这里我用到了三方的架包:fastjson-1.1.39.jar 架包 可以在我的博客中找到下载;或者网上找下 很多的; 这里主要就是映射  关系了;这就要求:实体类的名称和

用ajax json给后台action传数据要注意的问题

必须要有get和set方法   1 action中定义bean变量,注意写get和set方法 2 js中写ajax方法,传json类型数据 3 配置action在struts2中

go json反序列化成指定类型

简介 简单的介绍一下使用go的json库,将json字符串反序列化成接口中指定的实现类 代码如下 package usejsontype ExamInterface interface {CheckRule(data any) bool}type IntStru struct {DefalutVal int `json:"defalut_val"`Max int `json:

Java构造和解析Json数据的两种方法(json-lib构造和解析Json数据, org.json构造和解析Json数据)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面首先介绍用json-lib构造和解析Json数据的方法示例。 一、介绍       JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json

Ajax中根据json数据不同,对页面上的单选框Radio进行回显

Ajax中根据json数据不同,对页面上的单选框Radio进行回显 js代码: $(document).ready(function(){$.ajax({type: "POST",url: path+"/pop/nowTodayMeet2",dataType: "json",success: function(data){$("#discussTopicsEdit").val(da