在vue项目中经常会遇到向后台提交数据的数据类型为json字符串。
这就涉及到json、json数组、json字符串。
首先,JSON 其实并不是JS独有的,在许多编程语言中都可以解析JSON。
JSON是一种结构化的数据格式。
从结构表面上看,JSON对象与JS对象的写法相似。但是要特别注意以下区别:
1.JSON对象括号末尾不能加分号。
2.JSON属性名必须加引号
下面是一个JSON对象
let answer_json={
"answerDetail" :[{"answer":this.checkedValue[index],"vote":0}],
"questionId":tt.id,
"message":'',
}
可以看出JSON属性可以包含复杂数据类型,包含字符串、数组 等等。
JSON数组。
顾名思义,JSON数组就是多个JSON对象组成的数组。如下所示就是一个3个JSON对象组成的JSON数组
[
{
"answerDetail" :[{"answer":this.checkedValue[index],"vote":0}],
"questionId":tt.id,
"message":'',
},
{
"answerDetail" :[],
"questionId":tt.id,
},
{
"answerDetail" :[{"answer":this.checkedMxValue[dd.id],"vote":0}],
"questionId":dd.id,
"message":'',
}
]
JSON字符串
通常JS不能直接读取JSON对象和JSON数组,而是要把它转化成JSON字符串。
引用JSON.stringify()方法转化,入参是JSON数据,得到的是JS字符串。例如:
let answer_json={
"answerDetail" :[{"answer":this.checkedValue[index],"vote":0}],
"questionId":tt.id,
"message":'',
}
// this.message_list[index]=answer_json;
console.log(answer_json);
this.message_list[index]=answer_json;
console.log('提交答案为'+JSON.stringify (this.message_list[index]));
这里打印出来的就是字符串。