数据格式初探

大道至简 大道至简     2022-09-05     207

关键词:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:

var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

],

"authors": [

{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },

{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },

{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }

],

"musicians": [

{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },

{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }

] }

上面的长字符串实际上只是一个数组;将这个数组放进 JavaScript 变量之后,就可以很轻松地访问它。实际上,只需用点号表示法来表示数组元素。所以,要想访问 programmers 列表的第一个条目的姓氏,只需在 JavaScript 中使用下面这样的代码:

people.programmers[0].lastName;

people.authors[1].genre // Value is "fantasy"

people.musicians[3].lastName // Undefined. This refers to the fourth entry, and there isn't one

people.programmers[2].firstName // Value is "Elliotte"

修改 JSON 数据

正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:

people.musicians[1].lastName = "Rachmaninov";

在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。

转换回字符串

当然,如果不能轻松地将对象转换回本文提到的文本格式,那么所有数据修改都没有太大的价值。在 JavaScript 中这种转换也很简单:

String newJSONtext = people.toJSONString();

这样就行了!现在就获得了一个可以在任何地方使用的文本字符串,例如,可以将它用作 Ajax 应用程序中的请求字符串。

 

 

XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。

用XML表示中国部分省市数据如下:

<?xml version="1.0" encoding="utf-8"?>

<country>

    <name>中国</name>

    <province>

        <name>黑龙江</name>

     <cities>

            <city>哈尔滨</city>

            <city>大庆</city>

        </cities>

    </province>

    <province>

        <name>广东</name>

        <cities>

            <city>广州</city>

            <city>深圳</city>

            <city>珠海</city>

        </cities>

    </province>

</country>

 

用JSON表示如下:

{

{name:"中国", province:[ { name:"黑龙江", cities:{ city:["哈尔滨","大庆"] },

{name:"广东", cities:{ city:["广州","深圳","珠海"] } 

}

 

 

BeJson,一款JSON工具

 

1. JSON格式化校验

很多人在得到JSON数据后,一时没有办法判断JSON数据格式是否正确,是否少或多符号而导致程序不能解析,这个功能正好能帮助大家来完成JSON格式的校验。

2. JSON视图

想必很多程序员都会遇到当找一个节点的时候,会发现如果直接对着一行行数据无从下手,就算知道哪个位置,还要一个节点一个节点的往下找,万一一不留神又得从头开始找的麻烦事。

有了这个功能,一切JSON数据都会变成视图格式,一目了然,什么对象下有多少数组,一个数组下有多少对象。

这个功能非常实用。不光有视图功能还有格式化、压缩、转义、校验功能。总之很强大。

3. 压缩转义

程序员在写JSON语句测试用例的时候,很多时候为了方便直接写了个JSON字符串做测试,但是又陷入了无止境的双引号转义的麻烦中。这款功能集压缩、转义于一身。

4. JSON在线编辑器

5. 在线发送JSON数据

大家都知道,JSON用的最多的还是web项目的开发,那你要测试一个接口是否能准确的接受JSON数据,那你就得写一个页面发送JSON字符串,重复的做着这件事。随着这个功能的横空出世,你可以摆脱写测试页面了,因为这个功能可以将指定的JSON数据发送指定的url,方便吧。

6. JSON着色

很多人在写文档时,总希望文档能一目了然,但是面对着白底黑字的JSON数据总是提不起精神没关系,使用这个功能,所有的关键字都会被着色,数据结构一目了然。

7. JSON-XML互转

 

 

参考文章

http://www.cnblogs.com/SkySoot/archive/2012/04/17/2453010.html

 

lucene初探之数据格式详情

Lucene初探之数据格式详情(三)今天,我们来了解一下Lucene的域的元数据信息—>.fnm。一个段包含多个域,每个域都存储一下元数据。fnm文件的详细数据格式大致如下:如同上面对段的信息的介绍一般,我们来一个... 查看详情

lucene初探之数据格式详情(-)(代码片段)

Lucene初探之数据格式详情(-)在前两篇,我们介绍了Lucene的存储文件目录中的各个文件的大致关系。比如以层次规则保存的正向信息:索引–>段–>文档–>域–>词目录–>segment_N–>.fdx,.fdt–>.fnm–&... 查看详情

lucene初探之数据格式详情

Lucene初探之数据格式详情(四)之前我们介绍了索引存储文件中正向信息的存储情况,也就是关于被索引的文件数据在最终的存储详情中的组织结构,其展示了被索引的信息在索引文件中是如何被组织并最终存储起来的。但... 查看详情

lucene初探之数据格式详情

Lucene初探之数据格式详情(四)之前我们介绍了索引存储文件中正向信息的存储情况,也就是关于被索引的文件数据在最终的存储详情中的组织结构,其展示了被索引的信息在索引文件中是如何被组织并最终存储起来的。但... 查看详情

lucene初探之数据格式详情

Lucene初探之数据格式详情(五)在前几篇文章中我们了解了索引文件中关于索引的正向信息和反向信息的存储格式。除了正向信息和反向信息之外,还有一种不可或缺的信息也保存在索引文件中–索引因子。我们在开... 查看详情

fluentd初探简介与安装

Fluentd是一个开源的数据收集器,专为处理数据流设计,有点像 syslogd ,但是使用JSON作为数据格式。它采用了插件式的架构,具有高可扩展性高可用性,同时还实现了高可靠的信息转发。据分(Y)析(Y),Fluentd是由Fluent+d得来... 查看详情

lucene初探之数据格式详情

Lucene初探之数据格式详情(六)在之前的几篇文章中,我们共同探索了Lucene创建索引文件时正向信息、反向信息和标准因子的存储方式和原理。在实际的生产应用环境中,由于业务等需要,我们不仅仅只是需... 查看详情

lucene初探之数据格式详情

Lucene初探之数据格式详情(六)在之前的几篇文章中,我们共同探索了Lucene创建索引文件时正向信息、反向信息和标准因子的存储方式和原理。在实际的生产应用环境中,由于业务等需要,我们不仅仅只是需... 查看详情

weka学习笔记01:初探weka世界

...a命令行界面五、Weka探索器(一)探索器主界面(二)Weka数据格式1、三种声明(1)声明关系(2)声明属性(3)声明数据2、四种数据类型(1)数值型(numeric) 查看详情

状态压缩dp初探(代码片段)

...输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤111≤N,M≤11 查看详情

软件设计要素初探:架构模式

...式。架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构。组件化是使用架构模式的前提。可参阅《面向模式的软件架构》了解更多架构模式。分层模式分层模式:将应用划分为多个层次,定义各... 查看详情

lucene初探之索引文件格式

...例,前缀相同的文件都是一个段里面的;段的元数据信息保存在segment前缀的文件中,上图的元数据文件为segments.gen和segment 查看详情

http-flv直播初探

...p流httphttp视频封装格式flvflvtagTs文件Mp43gpwebm延时低低高高数据分段连续流连续流切片文件切片文件Html5播放可通过html5解封包播放(flv.js)不支持可通过html5解封包播放(hls.js)如果dash文件列表是mp4webm文件,可直接播放 RTMP(Real 查看详情

delphilivebindings初探

...veBindings,顾名思义,动态绑定。1、绑定前: 2、点击数据源: 3、绑定连线:点击蓝色区域,按住鼠标左键,一直移动到绿色区域,然后松掉鼠标左键。 系统就完成了系统绑定: 然后,Label1(数据的接受者),就会... 查看详情

boostasio初探

一、简介BoostAsio(asynchronousinputandoutput)关注数据的异步输入输出。BoostAsio库提供了平台无关性的异步数据处理能力(当然它也支持同步数据处理)。一般的数据传输过程需要通过函数的返回值来判断数据传输是否成功,而BoostAsio... 查看详情

mlir基础及开发初探分析(代码片段)

...间表示(IntermediateRepresentation),可以看作是一种中介的数据格式,便于模型在框架间转换。在深度学习中可以表示计算图的数据结构就可以称作一种IR,例如ONNX,TorchScript,TVMRelay等等。这里举几个例子介绍一下:首先,ONNX是... 查看详情

es实战初探esdate类型的时区机制(代码片段)

...的时区机制验证场景date字段类型指定唯一字符串的日期格式(非默认)date类型采用默认的格式date类型采用混合时间格式`time_zone`参数对写入时是否有作用小结ES默认date类型的format格式为:strict_date_optional_time||ep... 查看详情

自定义数据结构初探

从最基本的层面理解,数据结构是把一组相关的数据元素组织起来然后使用她们的策略和方法。C++运行用户以类的形式自定义数据类型,而库类型是语言自身定义的,类在C++中十分重要!尽管sales_item很简单,但要想给出其完整... 查看详情