JSON数据格式解析与转换:前端后端数据交换详解
【JSON】JSON在前端和后端传递
后端:假设您使用Java语言。前端:肯定是jsjava语言。
这就需要定义类型然后实例化,而js则不然。
它也不是面向对象的。
没有先定义类的概念(虽然js也有类型)。
它与Java完全不同。
显然,这两种原则、机制和语法是不兼容的。
两方产生的对象不能被另一方解释。
看网络通信时,无论后台发送什么数据,真正执行请求和响应的往往是http/tcp协议。
从前台寄回来。
网络层将所有内容都视为字符串,并且无法解析类型。
说到这里,字符串只能用来在前端和后端之间传输数据。
这意味着前端和后端都必须完成一个转换过程,将传出的字符串转换为字符串,并将传入的字符串解析为自己的字符串。
细绳。
传输的字符串涉及前后端双方的解析和处理,所以双方都必须知道或者知道如何转换字符串。
因此最好有这个标准或通用规则来编辑和转换字符串。
用于数据交换的协议是JSON,它是一种与平台无关的数据格式。
这样,前端就必须将自己的数据类型转换为JSON并发送给后端。
后端使用JSON来解析数据并将其转换为自己的类型。
背景与正面相同。
那么我们如何将数据转换为JSON呢?JSON对象具有可通过JavaScript访问的属性。
JSON对象封装在JSON字符串中,常用于前端和后端发送数据。
在前端使用时,可以通过object.property名称调用JSON对象。
如果是json字符串,那就只是字符串。
在数据发送过程中,JSON是以文本、或者字符串的形式发送的,而JavaScript对JSON对象进行操作,所以重要的是JSON对象和JSON字符串之间的转换。
JSON字符串:varstr='{name:'xmt',sex:'women'}';JSON对象:varstr={name:'xmt',sex:'women'};JSON字符串转换为JSON对象:varobj=JSON.parse(str);将JSON对象转换为JSON字符串:varstr=JSON.stringify(obj);
前端js把json字符串转json对象java对象转json对象命令
最近在浏览编程问答时,看到这样一个问题:如何将JSON数组类型的字符串转换为JSON数组,然后遍历数组取出JSON对象,最后在JS中取出里面的属性。
这里为有同样疑问的朋友解答一下。
首先我们回溯源头,JSON到底是什么?为什么JSON很容易交换数据?本文将从以下几个方面来理解JSON:
一、“JSON是一种轻量级的数据交换格式”的理解;
然后看看经常混淆的东西JSON和JS对象的区别;
将json字符串转换成json数组并遍历属性值;
什么是JSON?JSON是一种轻量级的数据交换格式。
如果你还没有看过JSON的官方介绍,可以去这里。
官方的介绍已经明确说明了什么是JSON。
我把JSON细化为以下几个方面:
【1.数据格式
什么是格式?它是标准化数据的表达方式。
例如,有一个人名叫“二百六”,身高“160cm”,体重“60kg”。
现在你想将此人的信息传递给其他人或其他东西。
您有多种选择:
对于上述所有选择,传输的数据是相同的,但您可以看到格式可以不同。
这就是各种格式化数据,JSON就是其中一种表达方式。
2.基于文本的数据格式
JSON是基于文本的数据格式,而不是基于二进制的数据,因此JSON在传输时,符合以下格式:JSON(至于JSON的格式(我们会在第二部分讲到),我们常称其为“JSON字符串”。
3.轻量级数据格式
在JSON之前,有一种数据格式叫xml,至今仍然广泛使用使用,但是JSON比较轻量级,比如xml很多标签,像上面的例子中,可以很明显的看到xml格式数据中标签本身占用了很大的空间,而JSON相对轻量级,那就是,同样的数据采用JSON格式占用的带宽较少,这在大量数据请求和传输的情况下有以下明显的优势。
4.广泛用于数据交换
轻量级已经是数据交换的优势,但更重要的是,JSON易于阅读、编写和机器解析,也就是说,这种JSON对人类和机器都很友好,而且是轻量级的,并且与语言无关(因为它是基于文本的),因此JSON被广泛使用。
用于数据交换。
以前端JS发出ajaxPOST请求为例,后端PHP处理请求为例:
可以看到,相同的数据在这里有三种不同的表达形式。
它们分别是前端的JS对象、传输的JSON字符串、后端的PHP对象,JS对象和PHP对象显然不是一回事,但是既然大家都用JSON来传输数据,那么大家都可以理解这种数据格式并且可以轻松地将JSON数据格式转换为他们可以理解的数据结构。
,这很方便,就像在其他各种语言环境中交换数据的情况一样。
JSON和JS对象经常被混淆。
经常听到“JSON是JS的子集”这句话,我也一直这么认为这句话。
每一个符合JSON格式的对象都可以将字符串解析成js,直到后来我发现了一个奇怪的事情...
1.为什么两个本质不同的东西如此接近?
JSON和JS对象本质上根本不是一回事,就像“斑马线”和“斑马线”一样,“斑马线”是根据“斑马”上的条纹来呈现和命名的,但是斑马线斑马纹是有生命的东西,而斑马条纹是无生命的东西。
同样,“JSON”的全称是“JavaScriptObjectNotation”,所以它的格式(语法)是基于JS的,但是它是一种格式,JS对象是一个实例,存在于内存中。
事物。
另外,JSON因为是文本格式,所以可以传输,但是JS对象不能传输。
从语法上来说,JSON会更严格,但是JS对象就很宽松。
那么为什么两个不同的事物如此接近呢?因为毕竟JSON是由JS演变而来的,并且有类似的语法。
2.JSON格式的JS对象的语法表达有多严格?
我们首先以“键值对作为对象表示”的形式来比较一下两者的区别。
至于JSON还可以用哪些形式来表达,我们对比后会列出来。
可以看出,相比JS对象,JSON的格式更加严格,所以大部分编写的JS对象都不符合JSON格式。
将json字符串转为json数组,并遍历属性值。
方法一:使用Iterator遍历值
方法二:使用for循环