用生命谱写代码的赞歌

0%

JSON 对象与 JSON 字符串相互转化

json对象与json格式字符串相互转化

普通对象格式的数组可以转化为字符串格式的 json 数组;json 格式的字符串数组也会被解析为普通对象格式的数组

json对象与普通对象

1
2
3
4
5
6
7
8
var a = {"name":"tom", "age":18};
var b = {name:"tom", age:18};

console.log(JSON.stringify(a));
console.log(JSON.stringify(b));

"{"name":"tom","age":18}"
"{"name":"tom","age":18}"
  • JSON.stringify 将一个对象(包括普通对象和 json 对象)解析
  • 结果均为 json 格式字符串
  • 还有[{name:"tom", age:18}][{"name":"tom", "age":18}]
  • 均被解析为"[{"name":"tom", "age":18}]"

json格式字符串

1
2
3
4
5
6
7
8
9
10
11
12
var str1 = '{"name":"tom","age":18}';
var str2 = '{name:"tom",age:18}';
var str3 = '[{"name":"tom","age":18}]';
var str4 = '[{name:"tom",age:18}]';

JSON.parse(str1); // {name: "tom", age: 18}
JSON.parse(str2); // 报错,无法解析非json字符串格式
JSON.parse(str3); // [{name: "tom", age: 18}]
JSON.parse(str4); // 报错,无法解析内部是非json字符串格式的数组

var json = '[{"title" : "a", "num" : 1},{"title" : "b", "num" : 2}]'
console.log(JSON.parse(json)); //[{title: "a", num: 1},{title: "b", num: 2}]
  • JSON.parse() 用于将一个 json 格式的字符串解析为普通对象
  • 包括 json 格式的字符串数组,也被解析为普通对象格式的数组

js中的encodeURI和decodeURI方法

encodeURIdecodeURI 是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以用 encodeURI 把非英文字符转化为英文编码,decodeURI 可以用来把字符还原回来。encodeURI 方法不会对下列字符进行编码:”:”、”/“、”;” 和 “?”,encodeURIComponent 方法可以对这些字符进行编码。

  • decodeURI() 方法相当于 java.net.URLDecoder.decode(URIString, “UTF-8”);

  • encodeURI() 方法相当于 java.net.URLEncoder.encode(URIString, “UTF-8”);

  • js字符串中的'\'是表转义的意思,譬如想要表示单个 ',需要使用 \'