2010-11-20 21 views
0

我正在寻找没有预定义知识的JSON对象的结构。为了详细说明,我可以给予对未知结构的JSON进行解码

[{"x":0,"y":0.4991088274400681,"z":7.489443555361306}, {"x":0,"y":0.7991088274400681,"z":7.489343555361306},{"x":0,"y":0.5991088274400681,"z":7.482445555361306}] 

,甚至一些疯狂的喜欢:

'AL': {name:'Alabama', landarea:131426, waterarea:4338, population:[3525342,4243844]}, 
'AK': {name:'Alaska', landarea:1418400, waterarea:234324, population:[43230943,43230943]} 

换句话说,我不知道什么样的JSON的,我会得到,但我想知道在第一个中有x,y和z,第一个有相关的值,或AL,AK和名字,landarea,waterarea和一组数字。

这有点像在Excel中获取列标题。 虽然我知道会有重复的结构。

是唯一的方法来解析这个通过使用JSON_decode,然后做typeOf考试,看看我有什么是对象/数组/字符串?它似乎相当笨重。

+3

我会问新的API,它不应该返回给你一个请求的两个不同的数据集 – mpapis 2010-11-20 23:18:21

+0

这不是说API是返回不同的数据集,它只是解析用户提供的JSON,可以以不同的格式。我知道有点危险。 – Rio 2010-11-21 01:41:26

回答

3

浏览器的本机JSON解码函数可以处理任何格式良好的JSON。你想要的是一个功能,可以了解解码后的JSON。这是不可能的,至少不是当你完全没有事先知道或处理数据的时候。但是,如果您只想知道每个组件的数据类型,那么typeof将正常工作。

+0

同意 - json_decode已经告诉你,属性x有一个y元素的数组,例如......它是隐含的。似乎OP正试图收集额外的语义,并且没有*一些*先前的知识就没有办法做到这一点。 – Hamish 2010-11-20 23:21:17

+1

谢谢。至少我可以继续,不用担心太多,我试图重新发明轮子。 – Rio 2010-11-21 00:30:18