1:js下用eval生成JSON对象 ---通过eval() 函数可以将JSON字符串转化为对象。
2:使用函数方式
3:使用js的json库或者jQuery提供的js库 --- 如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。
// 如果是你现在的提问,你的 string 是 '*****'<script type="text/javascript">
window.onload = function(){
var itemString = "'{id:\"item1\",num:1},{id:\"item2\",num:2}'"
if(itemString.length>2){
itemString = itemString.substring(1,itemString.length-1)
itemString = eval('([' + itemString + '])')
alert(itemString)
}
}
</script>
// 这是对于你第一个发的问题的,确保你的问题是正确的,那【两边有单引号】
// 也就是 var str = "'{ *** }'"
<script type="text/javascript">
window.onload = function() {
// 假设你的 string 如你所给的,是 ‘{string}’
var itemString = "‘{id:'item1',num:1,id:'item2',num:2,id:'item3',num:3}’"
if (itemString.length > 4) {
// 先把 ‘{}’两个给去掉,剩下 id:'',num:1, id:'',num:2 ***
itemString = itemString.substring(2, itemString.length - 2)
// 还要假设你的数据一定是规则的 id:'',num:1 每2个是一组,都是用 , 来分隔的
// 这样就切出来了 id:'' num:1 id'' num:2 的数组
var arrs = itemString.split(',')
var arrlen = arrs.length
var result = ""
for (var i = 0 i < arrlen i = i + 2) {
// 如果 result 不为空,则是已经拼接过 { id:'',num:* } 了,再拼接一个则要加上 ,
if (result != "") {
result += ","
}
// 最终结果拼接为 { id:'',num:* } , { id:'',num:* }
result += "{" + arrs[i] + "," + arrs[i + 1] + "}"
}
// 最后拼接总的字符串 [ + { id:'',num:* } , { id:'',num:* } + ]
result = "[" + result + "]"
alert(result)
}
}
</script>
var str = "['同意','不同意']"var arr = eval('('+str+')')
var newArray = []
for (var i = 0 i < arr.length i++) {
var obj = {}
obj.text = arr[i]
obj.value = arr[i]
newArray.push(obj)
}
alert(newArray)
或者
var str = '["同意","不同意"]'
var arr = JSON.parse(str)
var newArray = []
for (var i = 0 i < arr.length i++) {
var obj = {}
obj.text = arr[i]
obj.value = arr[i]
newArray.push(obj)
}
alert(newArray)