JSON 数据格式(详细讲解)

JSON数据格式

JSON是什么

JSON中文官网地址

是一种轻量级的数据交换格式

JSON是独立于任何语言的文本格式。易于程序员阅读和编写,同时也易于计算机解析和生成。

JSON语法规则
  • “名称/值”对的集合(Acollection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table ),有键列表(keyed list),或者关联数组(associative array)
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

值(value)可以是双引号括起来的字符串(string)、数值(number)、truefalsenull、对象(object)或者数组(array)。这些结构可以嵌套。

JSON中的键值对集合

JSON格式中的“名称/值”对的集合是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

JSON中的值的有序列表

数组是值(value)的有序集合。一个数组以 [左中括号 开始, ]右中括号 结束。值之间使用 ,逗号 分隔。

JSON文件

JSON具有独立的文件,扩展名为“.json”。该文件中允许保存JSON格式的数据。

在写.json文件的时候,必须用" "不能够用' '

JavaScript中的JSON

JavaScript与JSON

JSON是一种语法,用来序列化对象、数组、数值、字符串、布尔值和null。它基于JavaScript语法,但与之不同:JavaScript不是JSON,JSON也不是JavaScript

JavaScript类型JSON的不同点
对象和数组属性名称必须是双引号括起来的字符串;最后一个属性后不能有逗号
数值身出现前导零
字符串只有有限的一些字符可能被转义
JSON字符串与JSON对象
  • JSON字符串就是指在JavaScript语言中内容格式符合JSON格式的字符串类型的数据。
  • JSON对象就是指JSON格式在JavaScript语言中的具体表现形式为对象或数组。
JavaScript的JSON对象
  • JSON.parse()方法:解析JSON字符串并返回对应的值。
  • JSON.stringify()方法:返回与指定值对应的JSON字符串。
var jsonString='{"name":"张无忌"}';
        //解析JSON字符串并返回对应的值
        var jsonObject=JSON.parse(jsonString)
        console.log(jsonObject)

        //返回与指定值对应的JSON字符串
        var jsonResult=JSON.stringify(jsonObject)
        console.log(jsonResult)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DREAMPlace是一个开源的芯片布局布线工具,其json数据文件用于描述电路设计中的物理布局和布线,其结构如下: ```json { "dieArea": [ [x1, y1], [x2, y2] ], "tracks": [ { "layer": "M1", "start": 0, "num": 20, "step": 2, "origin": [0, 0] }, { "layer": "M2", "start": 0, "num": 10, "step": 1, "origin": [0, 0] } ], "gcells": [ { "id": 0, "lx": 0, "ly": 0, "width": 10, "height": 10, "site": 0, "orient": "N" }, { "id": 1, "lx": 0, "ly": 10, "width": 10, "height": 10, "site": 0, "orient": "N" } ], "nets": [ { "name": "net1", "connected_pins": [ { "id": 0, "node": 0 }, { "id": 1, "node": 0 } ], "weight": 1 }, { "name": "net2", "connected_pins": [ { "id": 2, "node": 0 }, { "id": 3, "node": 0 } ], "weight": 1 } ], "pins": [ { "id": 0, "net_id": 0, "gcell_id": 0, "layer": "M1", "orient": "N", "pos": [0, 0] }, { "id": 1, "net_id": 0, "gcell_id": 1, "layer": "M1", "orient": "N", "pos": [0, 10] }, { "id": 2, "net_id": 1, "gcell_id": 0, "layer": "M1", "orient": "N", "pos": [10, 0] }, { "id": 3, "net_id": 1, "gcell_id": 1, "layer": "M1", "orient": "N", "pos": [10, 10] } ] } ``` 其中,`dieArea`表示芯片的边界框;`tracks`表示布线的水平或垂直轨道;`gcells`表示物理单元格,即芯片中的基本单位;`nets`表示电路中的连线;`pins`表示端口,即与外部连接的引脚。 `tracks`中的每个元素包含以下属性: - `layer`: 轨道所在的层,如M1、M2等; - `start`: 轨道的起始索引; - `num`: 轨道数量; - `step`: 轨道之间的间距; - `origin`: 轨道的坐标原点。 `gcells`中的每个元素包含以下属性: - `id`: 单元格的唯一标识符; - `lx`: 单元格左下角的x坐标; - `ly`: 单元格左下角的y坐标; - `width`: 单元格的宽度; - `height`: 单元格的高度; - `site`: 单元格所在的站点; - `orient`: 单元格的方向。 `nets`中的每个元素包含以下属性: - `name`: 连线的名称; - `connected_pins`: 连线所连接的引脚; - `weight`: 连线的权重。 `pins`中的每个元素包含以下属性: - `id`: 引脚的唯一标识符; - `net_id`: 引脚所连接的连线; - `gcell_id`: 引脚所在的单元格; - `layer`: 引脚所在的层; - `orient`: 引脚的方向; - `pos`: 引脚的坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值