这是字符串。
{lat: -37.819616, lng: 144.968119},
{lat: -38.330766, lng: 144.695692},
{lat: -39.927193, lng: 175.053218},
{lat: -41.330162, lng: 174.865694},
{lat: -42.734358, lng: 147.439506},
{lat: -42.734358, lng: 147.501315},
{lat: -42.735258, lng: 147.438000},
{lat: -43.999792, lng: 170.463352}
Run Code Online (Sandbox Code Playgroud)
我正在尝试转换成这样的哈希对象。
[
{lat: -37.819616, lng: 144.968119},
{lat: -38.330766, lng: 144.695692}
]
Run Code Online (Sandbox Code Playgroud)
我应该如何使用Javascript?
[解决]我对如何在Javascript和JSON文件中表示哈希表示困惑。用JavaScript
var locations = [ {lat: 35.123, lng: 127.111}, {lat: 35.222, lng: 111.222} ];
Run Code Online (Sandbox Code Playgroud)
在JSON中
[
{ "lat": 35.123, "lng": 127.111 },
{ "lat": 35.222, "lng": 111.222}
]
Run Code Online (Sandbox Code Playgroud)
我混淆了两种写作方式。不管怎么说,还是要谢谢你。
您的字符串不正确,JSON解析器将永远不会正确解析它。在这里,您不能使用eval()函数方法。它不像数组,而是HashMap或格式错误的对象。在您的情况下,您需要具有键值对组合的json。
{'lat': -37.819616, 'lng': 144.968119},
{'lat': -38.330766, 'lng': 144.695692}
Run Code Online (Sandbox Code Playgroud)
如果您的对象不包含子对象/数组,则可以使用以下代码。
function formatJSON2Array (str) {
var arr = [];
str = str.replace(/^\{|\}$/g,'').split(',');
for(var i=0,cur,pair;cur=str[i];i++){
arr[i] = {};
pair = cur.split(':');
arr[i][pair[0]] = /^\d*$/.test(pair[1]) ? +pair[1] : pair[1];
}
console.log("JSON Array>>> " +JSON.stringify(arr)); // it will print [{"a":12},{"b":"c"},{"foo":"bar"}] in console
return arr;
}
formatJSON2Array("{lat: -37.819616, lng: 144.968119},{lat: -38.330766, lng: 144.695692}");
Run Code Online (Sandbox Code Playgroud)
上面的代码会将您输入的字符串转换为对象数组。
但是,如果您实际上想要的是HashMap(关联数组)而不是数组,请使用以下代码:
function FormatJSON2Object(str) {
var obj = {};
str = str.replace(/^\{|\}$/g,'').split(',');
for(var i=0,cur,pair;cur=str[i];i++){
pair = cur.split(':');
obj[pair[0]] = /^\d*$/.test(pair[1]) ? +pair[1] : pair[1];
}
console.log("JSON Object >>> "+ JSON.stringify(obj)); // it will return {"lat":" -37.819616"," lng":" 144.695692","{lat":" -38.330766"}
return obj;
}
FormatJSON2Object("{lat: -37.819616, lng: 144.968119},{lat: -38.330766, lng: 144.695692}");
Run Code Online (Sandbox Code Playgroud)
请注意,当您开始使用它嵌套对象和数组时,上面的代码将变得更加复杂。这届读帮了我很多关于使用数组对象和解析这个JSON的转换。如果您有除lat lng以外的任何键值对,它将可以正常工作。
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |