Php 未知结构的JSON解码

Php 未知结构的JSON解码,php,javascript,json,Php,Javascript,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:1

我希望获得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,但我想知道第一个JSON中有x、y和z,还有一个关联的值,或者第二个JSON中有AL、AK和name、landarea、waterarea,还有一个种群数组

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


使用JSON_解码,然后进行类型检查,看看我拥有的是不是一个对象/数组/字符串,这是解析这个的唯一方法吗?它看起来相当笨重。

浏览器的原生JSON解码功能可以处理任何格式良好的JSON。您需要的是一个能够理解已解码JSON的函数。这是不可能的,至少在您完全不知道数据的先验知识或处理数据的方法的情况下是不可能的。但是,如果您只想知道每个组件的数据类型,那么
typeof
就可以了。

浏览器的原生JSON解码函数可以处理任何格式良好的JSON。您需要的是一个能够理解已解码JSON的函数。这是不可能的,至少在您完全不知道数据的先验知识或处理数据的方法的情况下是不可能的。但是,如果您只想知道每个组件的数据类型,那么
typeof
就可以了。

我会要求提供新的api,它不应该向一个请求返回两组不同的数据。不是api返回不同的数据集,只是我在解析用户提供的JSON,可以是不同格式。有点危险,我知道。我会要求新的api,它不应该向一个请求返回两组不同的数据。不是api返回不同的数据集,只是我在解析用户输入的JSON,可以是不同的格式。有点危险,我知道。同意-json_decode已经告诉您属性x有一个y元素数组,例如。。这是含蓄的。似乎OP试图收集额外的语义,如果没有事先的知识,是无法做到这一点的。谢谢。至少我可以继续,而不用太担心我试图重新发明轮子。同意-json_decode已经告诉您,例如,属性x有一个y元素数组。。这是含蓄的。似乎OP试图收集额外的语义,如果没有事先的知识,是无法做到这一点的。谢谢。至少我可以继续下去,而不用太担心我在试图重新发明轮子。