假设我们有一个文件(* .csv,* .txt ...),如:
Name, Surname, Age, Occupation
Gino, DiNanni, 19, student
Anna, Kournikova, 27, programmer
(我添加了这些空格只是为了让它在这里可读)
我正在尝试创建一个JSON(BTW它有效),如:
[
{
"gino_dinanni": [
{
"age": "19",
"occupation": "student",
}
]
},
{
"anna_kournikova": [
{
"age": "27",
"occupation": "programmer",
}
]
}
]
可以像访问一样。
anna_kournikova.age // 27
到目前为止,我有http://jsbin.com/apapey/2/edit,但这给了我(非常好):
[["Age:19","Occupation:student"],["Age:27","Occupation:programmer"]]
我知道如何使用.toLowerCase()
创建anna_kournikova
和东西,但我真的迷失了创建正确的 JSON “对象”。我会粘贴一些我以前尝试过的更好的例子,但是我把它们全部抹去了,现在又从头开始了,我需要你的建议。我可能会错过一个简单的细节吗?非常感谢!
答案 0 :(得分:3)
如果您能够更改JSON的标记,这将产生更好的结果,
{
"gino_dinanni": {
"age": "19",
"occupation": "student"
},
"anna_kournikova": {
"age": "27",
"occupation": "programmer"
}
};
这样你可以使用data.anna_kournikova.age
。正如其他用户所建议的那样,您的CSV应该在服务器端进行解析,您可以使用jQuery.getJSON( ... )
来检索它
答案 1 :(得分:1)
http://jsbin.com/ihivuj/2/edit
我已将其更改为我认为您的预期格式。
如果您想使用真正的JSON对象,则可能不需要..stringify
进行打印。你试图使用一些字符串/数组的混合。
您可以使用括号语法向对象添加元素,但不要将它们视为数组:
arr[oneData[0] + oneData[1]][headers[2]] = oneData[2];
您不能将大括号语法与键名称的连接/变量结合使用。
答案 2 :(得分:0)
答案 3 :(得分:0)
绝对可以使用JavaScript尝试一些元编程:)
var json =[{"gino_dinanni": [{"age": "19","occupation": "student",}]},{"anna_kournikova": [{"age": "27","occupation": "programmer",}]}];
document.write(getAge('gino_dinanni'));
function getAge(name){
return eval("json[0]."+name+"[0].age");
};