2025年map转json字符串 /u0000(map转json字符串 空没有字段)

map转json字符串 /u0000(map转json字符串 空没有字段)json 数据在前端 javascript 和后端 php 转换 p p p strong 学习目的 前后端数据交换 strong p p nbsp p p strong 思路 strong p

大家好,我是讯享网,很高兴认识大家。



 json数据在前端(javascript)和后端(php)转换 </p><p><strong>学习目的:前后端数据交换</strong></p><p>&nbsp;</p><p><strong>思路:</strong></p><p>json数据格式是怎么样?</p><p>后端各种语言怎么将自己内容转换成json格式的内容?</p><p>前端怎么接收json数据?有几种方式?</p><p>js中怎么将json数据转换成js中的数组,对象来使用?</p><p>&nbsp;</p><p><strong>遇到问题</strong>:</p><p>用ajax接收数据直接赋值给了变量,发现里面是一个数组。</p><p>在php中不知道怎么传递数据?(或者说ajax的xmlhttp.responseText是怎么获取后端数据的?)</p><p>php中把对象和数组转换成json数据格式的方法。</p><p>&nbsp;</p><p><strong>学习过程:</strong></p><p><strong>1.json知识普及</strong></p><p>从结构上看,所有的数据最终都可以分成三种类型:&nbsp;<br>第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。&nbsp;<br>第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。&nbsp;<br>第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或dictionary(字典),比如“首都:北京”。&nbsp;<br>JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它的规则非常简单:&nbsp;<br>1) 并列的数据之间用逗号(“,”)分隔。&nbsp;<br>2) 映射用冒号(“:”)表示。&nbsp;<br>3) 并列数据的集合(数组)用方括号("[]")表示。&nbsp;<br>4) 映射的集合(对象)用大括号(“{}”)表示。&nbsp;<br>按照这个规则可以作以下理解:&nbsp;<br>1.数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]或者{}创建的数组或对象,否则一个普通的字符串是没有意义的;&nbsp;<br>2.无论是数组还是对象,之间的元素都用“,”隔开;&nbsp;<br>3.对象内部,(属性的)名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值;&nbsp;<br>4.对象和数组可以互相嵌套,即数组中的一个元素可以是一个对象也可以是一个数组,同理对象中的一个属性的值可以是一个对象也可以是一个数组。&nbsp;</p><p>&nbsp;</p><p><strong>2.Json在Ajax中的应用&nbsp;</strong><br>客户端可以给服务器端通过地址栏或者post很容易的提交数据,但是服务器端处理完数据之后,将计算的结果信 息回传给客户端时就存在了一定的难度,特别是数据量较大时。这个时候数据的格式成了关键,按照某种格式可以很方便的进行数据的组装,然后可以很方便的进行 解析。使用Json便是一种很好的策略。在服务器端,按照Json的格式拼装好一个字符串,响应给客户端。客户端如何进行解析呢?一般有两种策略(两种策 略的名称是自己给的名字,不一定很合理,但是思路应该是没有问题的):</p><p>1.直接解析&nbsp;<br>var json =&nbsp;<strong>eval</strong>('(' + result + ')');&nbsp;<br>通过上面这个表达式,就完成了将服务器端响应给客户端的Json格式的字符串解析成了一个Json(格式的)对象,名称为“json”,通过“json.”或者“json[]”的方式便可进行数据访问。&nbsp;<br>2.间接解析&nbsp;<br>var json = "r=" + result;&nbsp;<br>eval(json);&nbsp;<br>当然上面行代码可以合并为:eval("r=" + result);&nbsp;<br>通过上面的计算,也可以将服务器端响应给客户端的Json格式的字符串解析成了一个Json(格式的)对象,但是该对象名称为“r”,通过“r.”或者“r[]”的方式可进行数据访问。&nbsp;<br>总结:Json是一种简单的数据交换格式,它几乎可以很好的代替xml让服务器之间灵活的交换数据。</p><p><strong>3.JavaScript中的数组和对象&nbsp;</strong><br>在JavaScript中,通常用[]创建的数据格式称为数组,用{}创建的东西称为对象。</p><p>有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么到底该用哪一种呢?&nbsp;<br>其实数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。&nbsp;<br>当 然,数组和对象的另一个区别是,数组中的数据没有“名称”(name),对象中的数据有“名称”(name)。但是问题是,很多编程语言中,都有一种叫做 “关联数组”(associativearray)的东西。这种数组中的数据是有名称的。比如在javascript中,可以这样定义一个对象:&nbsp;<br>var a={"城市":"北京","面积":16800,"人口":1600};&nbsp;<br>但是,也可以定义成一个关联数组:&nbsp;<br>var a = new Array();&nbsp;<br>a["城市"]="北京";&nbsp;<br>a["面积"]=16800;&nbsp;<br>a["人口"]=1600;&nbsp;<br>这 样一来好像数组和集合就没有区别了,其实不是,在Javascript语言中,关联数组就是对象,对象就是关联数组。通过第二种方式创建的数组和通过[] 方式创建的数组是有很大的区别的,在第二个方式创建的“数组”中,也可以和第一种方式类似,通过“a.城市”来得到“北京”,“a.人口”来得到 “1600”,但是它和第一种方式创建的对象又是有区别的,通过第一种方式定义的a是没有length属性的,二通过第二种方式定义的a有,可是值为0, 可见里面的差别还是有的,要想具体搞清楚,恐怕得看看底层的一些实现代码了。&nbsp;</p><p><strong>4.PHP数组和Json之间的转换</strong></p><p>之所以要用到Json,很多时候是因为使用ajax对象时,程序与JS函数之间的数据交互。因为JS不认识PHP中的数组,PHP也不认识JS中的数组或对象。Json很好的解决了这个问题。</p><p><strong>PHP中将数组转变成Json</strong>&nbsp;<br>强大的PHP已经提供了内置函数:<strong>json_encode() 和 json_decode()</strong>。很容易理解,json_encode()就是将PHP数组转换成Json。相反,json_decode()就是将Json转换成PHP数组。</p><div></div><p>程序将打印出 :&nbsp; {“name”:”Eric”,”age”:23}</p><div></div><p>程序将打印出 :["Eric",23]</p><p>以上两个例子可以看出,如果PHP数组的键都是数字,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串。那么json_encode()就会返回一个对象形式的Json。刚已经说过。两者在js中的调用是不同的。</p><p>其它后端语言应该都会有对应的函数来处理json数据。 </p><p> 学透前端行业所有技术,玩遍北京周边所有城市。然后我会回到那个生我养我的地方,因为有亲人的地方才是家。 

讯享网


讯享网

小讯
上一篇 2025-05-08 08:49
下一篇 2025-05-13 09:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/143724.html