我有一个调用外部程序的javascript函数,我需要将结果放入一个对象,该对象将包含多行,每行包含多个值,例如:
$.get(programcall , function(data) {
var dealers = {};
data = {0:{'name':'name1','address':'address1','phone':'phone1','miles':1.2},1:{'name':'name2','address':'address2','phone':'phone2','miles':2.2}};
dealers = data;
});
此测试有效,因为“数据”未包含在引号中,但是当从被调用程序返回“数据”的内容时,它只是“经销商”中的文本内容。
如何将值存储为对象?
被调用的程序是MINE,因此我可以根据需要更改格式以使其正常工作。 数据将是具有名称,地址等的客户列表,我想使用javascript处理这些客户并填充DIV。
答案 0 :(得分:1)
您的外部服务器调用正在返回字符串内容作为数据对象。希望这是一种有效的JSON格式,但它仍然只是一个字符串。
您可能想要做的是使用jQuery's getJSON function而不是简单的$ .get,因为它会将响应转换为类似于您的示例的JSON对象。
$.getJSON(programcall, function(data) {
// data is now a JSON object not a string, if it's valid json from your server response
答案 1 :(得分:1)
如果字符串是有效的JSON,请使用本机JSON.parse函数将其转换为对象。
例如:
data = JSON.parse('{"mything": 3}')
需要注意的一点是:JSON需要围绕键名引用双引号,因此{"mything": 3}
可以正常工作但{'mything': 3}
will not validate。