项目中有这样场景: 100个以上的输入字段要后台验证, 任何验证不通过则返回 错误字符串
String stringTip = "['-1','errorInfo']";
验证通过返回
String stringTip = "['1','pass']";
前端 接收数据后台的传来的数据 判断 tip[0] 的状态,
var tip = stringTip;
以为可以直接 var state = tip[0]; 但得到却不是想要的结果. 略为研究,总结如下:
1. var tip 只是一个 js 的字符串, 用 tip[0] 得到的是字符串中第一个值, 即 "["
2. 把 js字符串 转化成 js 数组,对象 用 eval 函数, 下面是测试代码:
<html>
<head>
<title>Test</title>
</head>
<script>
// js 字符串转 js数组
var tip = '["1","tip"]';
alert(tip[0]);
var tip = eval("(" + tip + ")");
alert(tip[0]);
// js 字符串转 js对象
var obj = '{ name: "lee", sex: "Man" }'
var obj = eval("(" + obj + ")");
alert(obj.name);
</script>
<body>
lee's test code
</body>
</html>
3. 注意
使用eval();注意一定要加括号,否则会转换失败