【Js】JSON对象、JSON字符的使用总结
JSON对象 / JSON字符串区别
抛出一个最常见的疑问:什么是“JSON对象”,什么是“JSON字符串”,它俩的区别是什么?
废话不多说,直接上代码。
1.JSON对象:
// javascript对象字面量写法
var obj = { “name” : “Jay”,“age” : “18” }; //JSON对象写法
var json = {name : "jay", age : "18" };
在平时的应用中,这两种写法除去对象的属性名上有无“引号”外,没有任何区别,使用 console.log () 分别在控制台输出,结果如下:
console.log(obj); // 输出对象字面量
console.log(json); // 输出 json 对象
------------------------------------------
//显示结果
//对象字面量
Object
age: 18
name: "Jay"
__proto__ : Object //json 对象
Object
age: 18
name: "jay"
__proto__: Object
事实证明,这两种写法在JS中实质上是一样的,我们平时所说的“JSON对象”,通常就是上述两种方式来定义的。使用起来就像访问js对象的属性一样,通过"."来引用:
console.log(obj.name); // Jay
console.log(json.age); // 18
2.JSON字符串
var jsonStr = ‘{“name”:“jay” , “age” : “18”}’;
顾名思义,JSON字符串本质上是一个“字符串”。
程序员一提到字符串,首先想到的可能是用“引号”包裹的一串字符,例如“abc” , ‘def’ 这样。所以我们可以很好的来区分JSON字符串和JSON对象,被引号包裹起来的字面量书写形式的JSON对象,就是JSON字符串。
JSON对象 / JSON字符串相互转化
1.JSON对象 -----------------------------》 JSON 字符串:
①JSON.stringify(obj) --- 常用 ---
// 使用方法
var obj = { name : "jay" , age : "18"};
var str = JSON.stringify(obj); alert(str); //显示结果: '{"name":"jay","age":"18"}'
②JSON.toJSONstring()
找了半天,具体没找到怎么用,还要引入包,算了算了,弃了(无情)。
2.JSON 字符串 -----------------------------》 JSON 对象:
①JSON.parse() --- 常用 ---
var str = '{ "name" : "jay" , "age" : "18"}';
var obj = JSON.parse(str); console.log(obj); // 显示结果 : {name: "jay", age: "18"}
②eval('('+str+')')
var str = '{ "name" : "jay" , "age" : "18"}';
var obj = eval('('+str+')'); console.log(obj); // 显示结果 : {name: "jay", age: "18"}
③$.parseJSON(str)
var str = '{ "name" : "jay" , "age" : "18"}';
var obj = $.parseJSON(str); console.log(obj);
// 显示结果 : {name: "jay", age: "18"}
应用场景举例:提交数据到后端(php代码)
前段html:
<table>
<tr class="student">
<td>姓名:<input type="text" name="name"></td>
<td>年龄:<input type="text" name="age"></td>
</tr>
<tr class="student>
<td>姓名:<input type="text" name="name"></td>
<td>年龄:<input type="text" name="age"></td>
</tr>
</table>
前端js:
//将多组学生信息,传递到后端
var students = []; $(".student").each(function(index , element){
var name= $(element).find("input[name=name]").val().trim();
var age = $(element).find("input[name=age]").val().trim() var tmp = {
name : name,
age : age
} student.push(tmp);
}) var form = new FormData(); form.append("students",JSON.stringify(students)); $.(ajax(){
type : "post",
data : form,
url : postUrl, ....... })
php代码:
$students = $_REQUEST['students'];
// 第二个参数为true表示数组类型;省略第二个参数,表示为对象类型
$students = json_decode($student,true); //输出学生信息
foreach($students as $item){
echo '学生:' . $item['name'] . '的年龄是' . $item['age'] ;
}
【Js】JSON对象、JSON字符的使用总结的更多相关文章
- Android-Gson解析JSON数据(JSON对象/JSON数组)
上一篇博客,Android-解析JSON数据(JSON对象/JSON数组),介绍了使用 org.json.JSONArray;/org.json.JSONObject; 来解析JSON数据: Goog ...
- Android-解析JSON数据(JSON对象/JSON数组)
在上一篇博客中,Android-封装JSON数据(JSON对象/JSON数组),讲解到Android真实开发中更多的是去解析JSON数据(JSON对象/JSON数组) 封装JSON的数据是在服务器端进 ...
- Android-封装JSON数据(JSON对象/JSON数组)
Android-封装JSON数据(JSON对象/JSON数组),一般情况下不会在Android端封装JSON的数据,因为封装JSON的数据是在服务器端进行封装了,Android更多的工作是解析(JSO ...
- Swift开发中 JSON对象/JSON字符串/Data的互转
本文将介绍Swift开发中常用的转换(JSON对象/JSON字符串/Data之间的互相转换) #pragma mark - JSON(对象)----->JSON字符串 1.原生方法 //JSON ...
- JSon 对象转字符的一些方法
引用System.Web.Entity.dll public static string ToJSON(this object obj) { JavaScriptSerializer serializ ...
- js中解析json对象:JSON.parse()用于从一个字符串中解析出json对象, JSON.stringify()用于从一个对象解析出字符串。
JSON.parse()用于从一个字符串中解析出json对象. var str = '{"name":"huangxiaojian","age&quo ...
- 关于js中的json对象,json串,数组之间相互转换
将json对象转换成string var loginUser = {username: username, password: password}//方式一 localStorage.setItem( ...
- javascript中json对象json数组json字符串互转及取值
今天用到了json数组和json对象和json类型字符串之间互转及取值,记录一下: 1.json类型的字符串转换为json对象及取值 var jsonString = '{"bar" ...
- JSON对象 JSON字符串 JSON数组
JSON对象: var str2 = { "name" : "andy", "gender" : "man" , &q ...
- json字符串转成 json对象 json对象转换成java对象
import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; 依赖包 <dependency> ...
随机推荐
- JSP初学者4
Filter可认为是Servlet的“加强版”,他主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的 处理链. 使用Filter完整的流程是:Filte ...
- Flask入门模板过滤器与测试器(五)
1 模板引擎之过滤器 概念 : 过滤器本质上是个转换函数,第一个参数是待过滤的变量.如果它有第二个参数,模板中就必须传进去. 过滤器使用管道符| 放在{{ }} Jinja2模板引擎提供了丰富的内置过 ...
- 使用mysql5.7新特性解决前通配符查询性能问题
众所周知,在mysql里的后通配符可以使用索引查找,前通配查询却无法使用到索引,即使是使用到了索引,也是使用了索引全扫描,效率依然不高,再MySQL5.7之前,一直都没有好的办法解决,但是到了MySQ ...
- 深入理解JVM读书笔记思维导图
为了证明我已经啃完这本书然后买新书不用剁手...脑图画了8个钟,感觉整个人都不好了T_T 脑细胞不知道死了多少... 其实没吃透,估计若干年后要重新翻开来看...
- Perl Unicode全攻略
Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, ...
- JsonResponse、FileResponse和StreamingHttpResponse
一.JsonResponse对象 class JsonResponse(data,encoder=DjangoJSONEncoder,safe=True,json_dumps_params=None, ...
- 【转】onConfigurationChanged
http://blog.csdn.net/xiaodongvtion/article/details/679938 转载自该文章. 注意:onConfigurationChanged事件并不是只有屏幕 ...
- 【转】总结oninput、onchange与onpropertychange事件的用法和区别
经本人测试在chrome下的从历史记录中选取值的时候也户触发input事件 前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框hu9i动态显示还可以输入的字数.过 ...
- Python-利用flask模块创建web接口
一.创建一个实现登录的接口 import flask from flask import request #获取参数 # import json #post请求传入json对象时,通过json获取参数 ...
- 【洛谷P3119】[USACO15JAN]草鉴定Grass Cownoisseur
草鉴定Grass Cownoisseur 题目链接 约翰有n块草场,编号1到n,这些草场由若干条单行道相连.奶牛贝西是美味牧草的鉴赏家,她想到达尽可能多的草场去品尝牧草. 贝西总是从1号草场出发,最后 ...