我正在尝试将以下字符串值转换为JSON:
var yourmsg = '{"yourid":{"latlng":[123,456],"data":{"id":2345," name ":" basanta ","status":"Available"}}}';
请帮帮我。
答案 0 :(得分:0)
所有对象键都必须是字符串,您不能使用yourid
作为键而不使用qoutation标记:
var yourmsg = '{"'+yourid + '":{"latlng")+:[' + yourlat + ','+ yourlng + '],"data":{"id":' + yourid +'," name ":" basanta ","status":"Available"}}}';
答案 1 :(得分:0)
这是将字符串转换为JSON对象并将其写入文件的方法:
var yourmsg = '{"yourid":{"latlng":[123,456],"data":{"id":2345," name ":" basanta ","status":"Available"}}}';
yourmsg = JSON.parse(yourmsg); // converts the string to JSON object.
fs.writeFile('file.json', JSON.stringify(yourmsg, null, '\t')); // write to file with tabbed formatting.
答案 2 :(得分:0)
根据问题的原始版本,我认为OP真正想要的是基于三个参数(yourid, yourlat, yourlng
)创建JavaScript对象的方法。 OP的尝试是首先创建一个参数化字符串,然后询问如何从中获取一个对象。
如果是这样,这是一种更优雅的方法,可以直接跳到对象创建,避免需要创建字符串并使用JSON.parse()
:
http://jsbin.com/qebiti/edit?js,console
var msgFactory = (function () {
return function (id, lat, lng) {
//id, lat, lng must be numbers because strings need to be quoted
var msgObject = {};
msgObject[id] = {
latlng: [lat, lng],
data: {
id: id,
name: " basanta ",
status: "Available"
}
};
return msgObject;
};
}()),
yourid = 2345,
yourlat = 123,
yourlng = 456,
yourmsgObj = msgFactory(yourid, yourlat, yourlng);
console.log(JSON.stringify(yourmsgObj, null, 4));
工厂基于假设(来自评论中的样本数据),参数都是数字。如果需要字符串,那么工厂应引用字符串。
唯一棘手的部分是yourid
被用作结果对象中的名称和值。这似乎在编辑问题中丢失了。