json必须是双引号吗?json的单双引号问题

阳光 2021-08-11 17:57:17 java常见问答 6337

JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在实际工作中,我们会用到json,同时也会看到有些json字符串用双引号,那json必须是双引号吗?下面来我们就来给大家讲解一下。

标准格式来说,需要用双引号引起来,由于一些语音的特性有点差异,比如Javascript,可以用单引号,或者key不引起来都可以,但是和双引号引起来一个概念。

json的单双引号问题:

在json文件写数组的时候,如果数组的字符串使用单引号包住的时候,会导致获取到的json文件不能通过JSON.parse()进行转码,然后在 json官网 发现了,字符串是必须要用双引号的。

json必须是双引号吗?json的单双引号问题.png

遇到双引号和单引号的问题:

json就是一段有格式的字符串,如果数据的封装与解析都是我们自己做的时候,单引号和双引号是没啥关系的,但是如果用到一些别的json相关的库的时候,或者像笔者这样是发给别人用的时候,这个就特别需要注意了!

所以应该养成良好的习惯,用json的时候请用双引号吧!

正确的JSON是这样的:属性名必须用双引号包裹

var json = '{"name":"imooc"}'; // 这个是正确的JSON格式
var json = "{\"name\":\"imooc\"}"; // 这个也是正确的JSON格式
var json = '{name:"imooc"}'; // 这个是错误的JSON格式,因为属性名没有用双引号包裹
var json = "{'name':'imooc'}";//这个也是错误的JSON格式,属性名用双引号包裹,而它用了单引号

// 检验JSON格式是否正确,可以使用 JSON.parse(json); 如果是正确的JSON格式,会返回一个对象

// 否则会报错

// 如果是对象的话,属性名可以不用双引号包裹

var obj = {name:"imooc"};
var obj = {"name":"imooc"};
var obj = {'name':'imooc'};
var obj = {"name":'imooc'};
var obj = {'name':"imooc"};

// 上述写法都是正确的。一般使用第一种形式最多,有些人可能为了保证跟JSON格式的字符串保持一致性。

// 也会使用第二种形式。最后3种形式虽然是正确的,但不建议使用,容易挨打。

1、json格式一般包括七部分组成:[ ](中括号) 、{}(大括号)、key、value、:(冒号)、''(单引号)、""(双引号)。

2、json格式在解析时是按照如上的格式从左到右解析的,如果遇到格式不对就会报错。如多个空格,多个引号或非字符。

3、如果json的数据较多在出错时就很难查找问题所在,建议模仿二分法将json字符一份为二逐步排除。

其实严格起来的说,json字符串是需要用双引号的,所以大家在平时的工作中一定要注意json的使用哦!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

javabean的作用域从小到大是什么?javabean如何理解?

java测试工程师面试题有哪些?附答案!

java使用接口的好处有哪些?java接口使用规范是什么?