一個字符串作為key,一個數組作為value
var key ="myKey";
var values =new Array();
values.push(a);
values.push(b);
目標:json = {"myKey":values};
但是,"myKey"是作為參數傳入的,不能直接寫死,而json = {key:values}; 的結果是{"key":values}不滿足要求,而json還不支持
json = {"" + key:values};這種格式,所以,想直接把key作為參數傳入的思路是不行的
解決方法如下:
第一步:先寫一個字符串
var stringJson ='{"'+ key +'": ""}';
第二步:將字符串轉換為json對象,方法有兩種
1.使用JSON.parse(),但是此種方法需要較高版本的瀏覽器支持,但是http://www.json.org/提供了一個json.js,就可以支持低版本的瀏覽器也可以在https://github.com/douglascrockford/JSON-js上獲取到這個js,一般現在用json2.js
var json = JSON.parse(stringJson);
2.使用eval(),但是此種方法不是很安全
var json = eval('('+stringJson+')');
//注:主意格式要求
第二步之后,json的值就變為{"myKey":""}的形式了
第三步:給json重新賦值
json[key]= values;
在第三步之后,json的值就變為{"myKey":value}的形式了,達到目標要求
注: 參考 JSON對象和字符串之間的相互轉換