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您的建议是正确的。人们有两种访问对象属性的选择。无论如何,谢谢你添加这个。