如何检查json对象是否为数组

Dee*_*ass 3 python scripting json python-3.x

我是python的新手,当我从java向python发送json arraylist obect时遇到了这个问题,而从java发送json对象时,arraylist的json结构是

[{'firstObject' : 'firstVal'}]
Run Code Online (Sandbox Code Playgroud)

但是当我在python中收到它时,我得到的值是

{'listName':{'firstObject':'firstVal'}}
Run Code Online (Sandbox Code Playgroud)

当我像这样在数组中传递多个对象时:

[{'firstObject' : 'firstVal'},{'secondObject' : 'secondVal'}]
Run Code Online (Sandbox Code Playgroud)

我从python end收到json作为

{'listName':[{'firstObject':'firstVal'},{'secondObject' : 'secondVal'}]}    
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会这样。有人可以帮助我一种将第一种情况设为数组对象的方法,还是一种判断json变量是否为数组类型的方法。

小智 5

每当您使用模块中的load(或loads)函数时json,都会得到一个dict或一个list对象。为确保获得列表而不是包含的字典listName,可以执行以下操作:

import json

jsonfile = open(...) # <- your json file
json_obj = json.load(jsonfile)

if isinstance(json_obj, dict) and 'listName' in json_obj:
    json_obj = json_obj['listName']
Run Code Online (Sandbox Code Playgroud)

那应该给您期望的结果。