gpt4 book ai didi

javascript - 如何在属性值上创建一个没有双引号的javascript对象

转载 作者:行者123 更新时间:2023-11-29 11:03:41 25 4
gpt4 key购买 nike

来自这些数据

[{"lat":"-1.325416","lng":"36.669051"},
{"lat":"-1.392932","l‌​ng":"36.768752"},
{"l‌​at":"-1.390505","lng‌​":"36.810023"},
{"lat‌​":"-1.448266","lng":‌​"36.952769"},
{"lat":‌​"-1.267033","lng":"3‌​7.094882"},
{"lat":"-‌​1.214605","lng":"37.‌​053978"},
{"lat":"-1.‌​169516","lng":"36.89‌​5608"}]

我正在尝试创建一个如下所示的 javascript 对象。

 var outerCoords =[
{lat: -1.325416, lng: 36.669051},
{lat: -1.392932, lng: 36.768752},
{lat: -1.390505, lng: 36.810023},
{lat: -1.448266, lng: 36.952769},
{lat: -1.267033, lng: 37.094882},
{lat: -1.214605, lng: 37.053978},
{lat: -1.169516, lng: 36.895608},
{lat: -1.244058, lng: 36.730391}
],

不带双引号的属性值。我首先将我的 json 字符串化以获得一个字符串,然后从字符串中删除双引号,然后解析没有双引号的结果。解析结果不会创建对象,它返回一个字符串。如果您能提供帮助,我将不胜感激。这就是我正在做的事情。

var str= JSON.stringify(outercords1); 
var x = str.replace (/"/g,'');
var obj= JSON.parse(x);

outercords 的值为:

[{"lat":"-1.325416","lng":"36.669051"},{"lat":"-1.392932","lng":"36.768752"},{"lat":"-1.390505","lng":"36.810023"},{"lat":"-1.448266","lng":"36.952769"},{"lat":"-1.267033","lng":"37.094882"},{"lat":"-1.214605","lng":"37.053978"},{"lat":"-1.169516","lng":"36.895608"}] 

最佳答案

字符串化 JSON 具有带引号的属性。这是强制性的。所以表单中的 javascript 对象

var outerCoords =[
{lat: -1.325416, lng: 36.669051},
{lat: -1.392932, lng: 36.768752},
{lat: -1.390505, lng: 36.810023},
{lat: -1.448266, lng: 36.952769},
{lat: -1.267033, lng: 37.094882},
{lat: -1.214605, lng: 37.053978},
{lat: -1.169516, lng: 36.895608},
{lat: -1.244058, lng: 36.730391}
],

将被字符串化为

'[{"lat":-1.325416,"lng":36.669051},{"lat":-1.392932,"lng":36.768752},{"lat":-1.390505,"lng":36.810023},{"lat":-1.448266,"lng":36.952769},{"lat":-1.267033,"lng":37.094882},{"lat":-1.214605,"lng":37.053978},{"lat":-1.169516,"lng":36.895608},{"lat":-1.244058,"lng":36.730391}]'

删除引号会使它无法被解析为 JSON,所以这就是你得到字符串的原因。

另一方面,表演

JSON.parse('[{"lat":-1.325416,"lng":36.669051},{"lat":-1.392932,"lng":36.768752},{"lat":-1.390505,"lng":36.810023},{"lat":-1.448266,"lng":36.952769},{"lat":-1.267033,"lng":37.094882},{"lat":-1.214605,"lng":37.053978},{"lat":-1.169516,"lng":36.895608},{"lat":-1.244058,"lng":36.730391}]');

会给你一个对象。开始时您递交的同一对象。

对象属性总是转换为字符串,所以将你的对象声明为

var outerCoords =[
{"lat": -1.325416, "lng": 36.669051},
{"lat": -1.392932, "lng": 36.768752},
{"lat": -1.390505, "lng": 36.810023},
{"lat": -1.448266, "lng": 36.952769},
{"lat": -1.267033, "lng": 37.094882},
{"lat": -1.214605, "lng": 37.053978},
{"lat": -1.169516, "lng": 36.895608},
{"lat": -1.244058, "lng": 36.730391}
];

与不带引号的声明相同。

关于javascript - 如何在属性值上创建一个没有双引号的javascript对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com