如何从JSON中获取值
How to get value from JSON?
嗯。。我有这个json值:
var form = {
lat: event.row['lat'].value,
lon: event.row['lon'].value,
}
Android.openForm( $.toJSON(form) );
如何从lat和long中获取值?
openForm: function( json ){
alert(json[lat]);
//$('#lat').val(json.lat);
}
如果form
的结果是这个
var form = {
lat: "somevalue",
lon: "somevalue"
};
您可以通过点属性访问变量form
中的数据。
form.lat
和form.lon
简单Fiddler
为什么不让openForm直接接收对象,而不是它的json序列化?
openForm(form){
var json = $.toJSON(form);
alert(form.lat);
}
$.toJSON(form)
将您的对象转换为字符串,我认为您想要传递对象,所以只需将其丢弃即可:
Android.openForm(form);
没有意识到我的队友正在使用插件。。。http://code.google.com/p/jquery-json/
我应该先问他对不起,没有
var thing = {plugin: 'jquery-json', version: 2.3};
var encoded = $.toJSON( thing );
// '{"plugin":"jquery-json","version":2.3}'
var name = $.evalJSON( encoded ).plugin;
// "jquery-json"
var version = $.evalJSON(encoded).version;
// 2.3
试试这个
openForm: function( json ){
var lat = json.lat;//or json["lat"]
var lon = json.lon;//or json["lon"]
}
顺便说一句,变量form
已经是一个格式良好的json了,您不必为了使用它而将其转换为json
如果$.toJSON
是一个类似JSON.stringify
的方法,那么您已经将数据序列化为JSON文本,因此它的值不再通过属性可用。
你需要先解析它。
openForm: function( json ){
// UPDATED to use the JSON plugin you've loaded
var parsed = $.evalJSON( json );
alert( parsed[lat] );
}
我假设无法从您尝试检索值的位置访问原始form
变量,否则您可能一开始就不会序列化它
如果原始的form
数据在同一个执行环境中,并且可以直接从函数访问,那么应该这样做,而不是序列化。
什么是JSON,我们为什么要使用它
对于那些不了解JSON的含义的人来说,它是一种基于文本的序列化格式,用于在数据无法自然共享的环境之间传输数据。
序列化只是一种标准化格式,它从一个环境的本机数据结构中"字符串化",然后解析为不同环境的本地数据结构。
我假设toJSON
是"字符串"函数,openForm
是JSON数据传输到的独立环境。
如果这些假设是正确的,则需要将JSON解析到新环境中,然后才能轻松访问其值。
相关文章:
- 如何使用 Node JS 获取 JSON 嵌套数组值
- 使用Javascript/JQuery获取JSON GET数据
- 在jQuery中获取JSON
- 如何使用jQuery按键搜索和获取json行数据
- 如何使用jquery获取Json的节点
- 通过字符串获取JSON对象
- 通过Azure存储以HTML形式获取JSON文件
- 获取JSON并使用Javascript解析为字符串
- 如何在angular中获取json对象的名称
- 如何使用angular获取json对象的名称
- 如何使用Ajax JQuery.ech()获取JSON值
- 可以't通过从googlemapapi获取json值
- 获取json结果的身份验证问题
- Javascript:获取 JSON 中的值计数
- 按服务获取JSON数据
- 如何使用javascript获取json元素
- 从javascript文件中获取JSON,并使用NodeJS在路由文件中显示
- 如何从给定的代码中获取JSON对象
- 获取 JSON 数据将数组项添加到变量
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串