簡體   English   中英

如何將數組轉換為JSON格式

[英]How to convert an array to JSON format

我有一個字符串數組,例如

p[]={"John","Kevin","Lex"}  

我想將其轉換為JSON,以便數據以鍵值對的形式出現,例如:

{
    "name":"John",       
    "name":"Kevin"
}

我該如何實現?

首先, p[]={...}不是合法的JavaScript。 我假設您的意思是:

p = ["John","Kevin","Lex"]

其次,規范允許使用JSON中的重復鍵,但大多數JSON庫均不支持。 看到這個問題

這是因為大多數語言(例如您正在使用的JavaScript)將關聯數組結構序列化為JSON對象。 關聯數組將鍵唯一地顯式映射到值:

> a = {}
> a.name = "John"
    {name: "John"}
> a.name = "Jeff"
    {name: "Jeff"}

因此,如果您嘗試在pa上使用最簡單的JSON字符串化機制,那么您將無法獲得所需的結果:

> JSON.stringify(p)
    '["John","Kevin","Lex"]'
> JSON.stringify(a)
    '{"name":"Jeff"}'

試試這個功能:

var many_named_JSON = function(array_of_names) {
  array_string =  JSON.stringify(array_of_names.map(function (item) {
    return "name:" + item;
  }));
  contents_regex = /\[(.*)\]/g;
  return ("{" + contents_regex.exec(array_string)[1] + "}").replace(/name:/g, 'name":"');
};

它在這里工作:

> many_named_JSON(["John","Kevin","Lex"])
    '{"name":"john","name":"jeff"}'

你想要的東西,像這樣

var aArray = ["John","Kevin","Lex"];
var oMainObject = {};
var aMainObjectArray = [];
for (var i = 0; i < aArray.length; i++){
var oObject = {};
oObject.name = aArray[i];
aMainObjectArray.push(oObject);
)  
oMainObject.data = aMainObjectArray;

結果, oMainObject對象包含:

{data: [{"name":"John"},{"name":"Kevin"},{"name":"Lex"}]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM