Json 2可用格式

Json 2可用格式,json,tcl,Json,Tcl,我昨天刚开始与TCL合作。我试图通过调用GoogleMapsAPI来获取经度和纬度。 我正在使用以下URL(当然还有我的密钥) 返回的是json,我用json2dict转换它。这给了我一个只有“结果”和“状态”作为键的dict 我如何从结果中得到长时间和长时间?我试过dict过滤器,但我真的不能让它工作 set lat [dict filter $dict {k v} {expr {$k eq "lat"}}] 在javascript中,它将像这样简单 result[0].geometry.

我昨天刚开始与TCL合作。我试图通过调用GoogleMapsAPI来获取经度和纬度。 我正在使用以下URL(当然还有我的密钥)

返回的是json,我用json2dict转换它。这给了我一个只有“结果”和“状态”作为键的dict

我如何从结果中得到长时间和长时间?我试过dict过滤器,但我真的不能让它工作

set lat [dict filter $dict {k v} {expr {$k eq "lat"}}]
在javascript中,它将像这样简单

result[0].geometry.bounds.lat 

我猜测您的json结构,因此是dict的结构,但可能是这样的:

package req json
set js {{"result":[{"geometry":{"bounds":{"lat":42,"long":24}}}]}}
set d [json::json2dict $js]
然后

或者,在一行中

set lat [dict get [lindex [dict get $d result] 0] geometry bounds lat]

好的,下载并构建

然后


非常简单。

我猜您的json结构有点像,因此是dict的结构,但可能是这样的:

package req json
set js {{"result":[{"geometry":{"bounds":{"lat":42,"long":24}}}]}}
set d [json::json2dict $js]
然后

或者,在一行中

set lat [dict get [lindex [dict get $d result] 0] geometry bounds lat]

好的,下载并构建

然后

很简单

结果[0]。geometry.bounds.lat

使用的JSON支持,您可以获得相同的好处(以及更多好处):

% package req tdom
0.9.1
% set js {{"result":[{"geometry":{"bounds":{"lat":42,"long":24}}}]}}
{"result":[{"geometry":{"bounds":{"lat":42,"long":24}}}]}
% set d [dom parse -json $js]
domDoc0x7fc98b700770
% $d selectNodes {string(//result/*[1]/geometry/bounds/long)}
24
% $d selectNodes {string(//result/*[1]/geometry/bounds/lat)}
42
这假设您的时差为0.9+。XPath位置访问是基于位置的访问

结果[0]。geometry.bounds.lat

使用的JSON支持,您可以获得相同的好处(以及更多好处):

% package req tdom
0.9.1
% set js {{"result":[{"geometry":{"bounds":{"lat":42,"long":24}}}]}}
{"result":[{"geometry":{"bounds":{"lat":42,"long":24}}}]}
% set d [dom parse -json $js]
domDoc0x7fc98b700770
% $d selectNodes {string(//result/*[1]/geometry/bounds/long)}
24
% $d selectNodes {string(//result/*[1]/geometry/bounds/lat)}
42

这假设您的时差为0.9+。XPath位置访问是基于一个的。

如果它解决了您的问题,您应该接受答案,因此海报会因此获得好评。rl_json库(建议在现代Tcl代码中使用json)会使这更容易。我建议在“旧”和“现代”Tcl代码中使用json;)如果它解决了您的问题,您应该接受答案,因此海报会因此获得好评。rl_json库(推荐用于在现代Tcl代码中使用json)会使这更容易。我建议在“旧”和“现代”Tcl代码中使用json;)