Javascript 用前导下划线解析JSON
当我Javascript 用前导下划线解析JSON,javascript,jquery,json,Javascript,Jquery,Json,当我console.log我的数据时,它在Chrome开发工具中看起来是这样的: e.LatLngBounds {_southWest: e.LatLng, _northEast: e.LatLng} _northEast: e.LatLng lat: 50.62507306341435 lng: -69.169921875 __proto__: Object _southWest: e.LatLng lat: 27.0
console.log
我的数据时,它在Chrome开发工具中看起来是这样的:
e.LatLngBounds {_southWest: e.LatLng, _northEast: e.LatLng}
_northEast: e.LatLng
lat: 50.62507306341435
lng: -69.169921875
__proto__: Object
_southWest: e.LatLng
lat: 27.059125784374068
lng: -127.96875
__proto__: Object
__proto__: Object
如果我JSON.stringify
it(比如:var-totbounds=JSON.stringify(mybounds);
),我会得到以下结果:
{"_southWest":{"lat":27.059125784374068,"lng":-127.96875},"_northEast":{"lat":50.62507306341435,"lng":-69.169921875}}
我试图解析它以获得\u西南
lat
(例如),但这两种方法都不起作用:
totbounds[_southWest][lat];
totbounds._southWest.lat;
(注意,
totbounds
是stringized对象)JSON。stringify
将JavaScript对象转换为字符串,因此您无法像尝试的那样作为对象访问它。Stringified JSON不是您可以访问其属性的对象。对象应保持为对象,而不是字符串化。在你的目的中你不需要它(如果我正确理解你的问题)
鉴于:
var mybound = {_southWest: e.LatLng, _northEast: e.LatLng}
_northEast: e.LatLng
lat: 50.62507306341435
lng: -69.169921875
__proto__: Object
_southWest: e.LatLng
lat: 27.059125784374068
lng: -127.96875
__proto__: Object
__proto__: Object
要访问其属性,您可以通过以下方式执行操作:
var lat = mybound["_southWest"]["lat"];
JSON.stringify
将您的JavaScript对象转换为字符串,这样您就不能像您尝试的那样作为对象访问它了。Stringified JSON不是您可以访问其属性的对象。对象应保持为对象,而不是字符串化。在你的目的中你不需要它(如果我正确理解你的问题)
鉴于:
var mybound = {_southWest: e.LatLng, _northEast: e.LatLng}
_northEast: e.LatLng
lat: 50.62507306341435
lng: -69.169921875
__proto__: Object
_southWest: e.LatLng
lat: 27.059125784374068
lng: -127.96875
__proto__: Object
__proto__: Object
要访问其属性,您可以通过以下方式执行操作:
var lat = mybound["_southWest"]["lat"];
如果mybounds是您的对象,您可以
mybounds._southWest.lat;
例如:
var str = '{"_southWest":{"lat":27.059125784374068,"lng":-127.96875},"_northEast":{"lat":50.62507306341435,"lng":-69.169921875}}';
var mybounds= JSON.parse(str);
console.log(mybounds._southWest.lat);
27.059125784374068
如果mybounds是您的对象,您可以
mybounds._southWest.lat;
例如:
var str = '{"_southWest":{"lat":27.059125784374068,"lng":-127.96875},"_northEast":{"lat":50.62507306341435,"lng":-69.169921875}}';
var mybounds= JSON.parse(str);
console.log(mybounds._southWest.lat);
27.059125784374068
如果对对象进行字符串化,则得到的是JSON字符串,而不是对象。应该从对象而不是字符串中读取属性。使用
mybounds.\u soutwest.lat
。试试这个:我想你想要mybounds.\u soutwest.lat
或者mybounds['''u soutwest']['lat']
你是如何解析它的?如果你将对象字符串化,你会得到一个JSON字符串,而不是一个对象。应该从对象而不是字符串中读取属性。使用mybounds.\u soutwest.lat
。试试这个:我想你想要mybounds.\u soutwest.lat
或mybounds[''u soutwest']['lat']
你是如何解析它的?谢谢。我忘了引号了。@jonmrich:你不需要引号<代码>mybounds.\u soutwest.lat代码>也同样有效。您唯一的错误是将对象转换为字符串。在使用不熟悉的方法之前,请务必阅读文档,这样可以避免大量猜测。@FelixKling您的建议是正确的。人们有两种访问对象属性的选择。无论如何,谢谢你添加这个。谢谢。我忘了引号了。@jonmrich:你不需要引号<代码>mybounds.\u soutwest.lat代码>也同样有效。您唯一的错误是将对象转换为字符串。在使用不熟悉的方法之前,请务必阅读文档,这样可以避免大量猜测。@FelixKling您的建议是正确的。人们有两种访问对象属性的选择。无论如何,谢谢你添加这个。