json格式的正确写法_json字符串的标准格式
现在越来越多的项⽬和开发插件等默认都会⽀持和使⽤json数据格式,作为数据保持、传输的⼀种⽅式。
说是其中⼀种,就标⽰还有好多其他格式。⽐如:最多是xml。webservice的标准数据格式。
不过由于json是JavaScript 对象表⽰法(JavaScript Object Notation),天⽣就对js⽀持很好,
所以现在很多的ajax等都使⽤json,反⽽会更好处理⼀些。
1、定义
什么是 JSON ?
1.JSON 指的是 JavaScript 对象表⽰法(JavaScript Object Notation)
2.JSON 是轻量级的⽂本数据交换格式
3.JSON 独⽴于语⾔ *
4.JSON 具有⾃我描述性,更易理解
* JSON 使⽤ JavaScript 语法来描述数据对象,但是 JSON 仍然独⽴于语⾔和平台。JSON 解析器和 JSON 库⽀持许多不同的编程语⾔。
w3c的标准说明如下:
JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式。 易于⼈阅读和编写。同时也易于机器解析和⽣成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的⼀个⼦集。 JSON采⽤完全独⽴于语⾔的⽂本格式,但是也使⽤了类似于C语⾔家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语⾔。
JSON建构于两种结构:
1.“名称/值”对的集合(A collection of name/value pairs)。不同的语⾔中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2.值的有序列表(An ordered list of values)。在⼤部分语⾔中,它被理解为数组(array)。
这些都是常见的数据结构。事实上⼤部分现代计算机语⾔都以某种形式⽀持它们。这使得⼀种数据格
式在同样基于这些结构的编程语⾔之间交换成为可能。
JSON具有以下这些形式:
对象是⼀个⽆序的“‘名称/值'对”集合。⼀个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟⼀个“:”(冒号);“‘名称/值' 对”之间使⽤“,”(逗号)分隔。
注意:如果后台直接传递对象来js,则是json格式的。参考⽂章:
数组是值(value)的有序集合。⼀个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使⽤“,”(逗号)分隔。
注意:传递数据这个就好理解。其实就⼀个array。array和json直接的关系,请参考⽂章:
[javascript对象及数组 json的⼀些了解说明]
2、json标准:
json表⽰:我没有标准。哈哈。我说的标准是指什么样的格式化的字符串js才能解析成json?
下⾯这个json串就是正确的:
安卓在线解析json
复制代码代码如下:
{
"employees": [
{
"firstName": "Bill",
"lastName": "Gates"
},
{
"firstName": "George",
"lastName": "Bush"
},
{
"firstName": "Thomas",
"lastName": "Carter"
}
]
}
注意:
json串,在js中会解析成对象。其中对象的名称⽐如:
employees、firstName,必须⽤""或者''引起来才⾏。后⾯的value,如果是int和bool(js是不区分的哦),可以不⽤""或者''引起来,其他的字符串必须引起来,尤其是记得把时间⽇期引起来!
总结如下:
⾥⾯的是⼀个对象,如果是多个对象,则⽤逗号间隔,即{},{},这样就组成了⼀个对象序列,为了辨别开始和结束,则需要加上[]才能进⾏传递,则实际传递的形式应该是[{},{}],如果只要传递⼀个对象,则{}的形式就可以了。接下来就是对象属性的表现⽅式了,属性必须在""
⾥⾯,属性与值之间⽤:隔开,属性之间⽤,来分隔,如果属性的值为数组,则⽤[]包括起来,这样实际传递的数据格式可能有:1、{"属性1":值1,"属性2":值2},如果值为字符串,则也需要⽤""括起来(下同)。2、{"属性1":值1,"属性2":[值1,值2]},其中属性2是⼀个数组,包含
了值1和值2。3、{"属性1":值1,"属性2":{"属性a":值a,"属性b":[值b,值c]}},这个⽐较复杂了,属性2是个对象,这个对象由包含属性a和属性b,属性b⼜是⼀个数组包含值b和值c。我想这些应该是最基本了,其余的就是在此基础上的拓展⽽已。
实际中,要序列化对象,在中只要调⽤Newtonsoft.Json.JavaConvert.SerializeObject();函数即可
参考:
jquery ajax传递对象(数组)到后台并解析的实现
有办法,就是你打印出来字符串,⾃⼰的按照上⾯的结构对应⼀下,或者直接使⽤在线检验⼯具检验。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论