-
JSON.parse与JSON.stringfy的用法
JSON.parse用于将json格式的字符串转化为对象
JSON.stringfy 将对象转化为json格式的字符串
上代码,看一下简单的用法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>测试json和对象之间的转化</div>
</body>
<script>
// 将json格式的字符串转换为对象
var a = '{"id": "111","name": "wang","password": "123456"}'
console.log(a);
console.log(JSON.parse(a));
// 将对象转换为json字符串
var b = {
name: 'wang',
password: '123456',
}
console.log(b);
console.log(JSON.stringify(b));
</script>
</html>
2.将元素为对象的json字符串转化为对象
今天在项目中测试数据的时候遇到一种情况,自己的测试数据是json字符串,里面的data是数组对象,格式如下
{
"success": true,
"time": "2019-04-08",
"data": [
{
"name": "wang",
"age": "18"
},
{
"name": "li",
"age": "23"
},
{
"name": "zhang",
"age": "19"
}
]
}
在使用的时候,取出data数组,想检查data数组中有没有想要的元素,用到了string的indexOf() 方法,但是一直不成功,搞了半天才想起来ajax请求过来的数据data是一个对象,要将data数组转化为json字符串,然后将要查询的对象也转化为json字符串,这样就能成功,记录一下
window.onload = () => {
$.ajax({
url: 'test.json',
type: 'GET',
success: (data) => {
var testData = {
name: "wang",
age: "18"
};
console.log(data.data);
console.log(JSON.stringify(data.data).indexOf(JSON.stringify(testData)))
}
})
}