有一个像这样的json:
{
"P1": "ss",
"Id": 1234,
"P2": {
"P1": "cccc"
},
"P3": [
{
"P1": "aaa"
}
]
}
如何在P1
不迭代所有json的情况下找到all 的值?
PS:P1
可以在json中的任何位置。
如果没有方法可以做到这一点,您能告诉我如何遍历json吗?
我对这个问题的处理方式会有所不同。
由于JSON不允许深度优先搜索,因此将json转换为Python对象,将其提供给XML解码器,然后提取要搜索的Node
from xml.dom.minidom import parseString
import json
def bar(somejson, key):
def val(node):
# Searches for the next Element Node containing Value
e = node.nextSibling
while e and e.nodeType != e.ELEMENT_NODE:
e = e.nextSibling
return (e.getElementsByTagName('string')[0].firstChild.nodeValue if e
else None)
# parse the JSON as XML
foo_dom = parseString(xmlrpclib.dumps((json.loads(somejson),)))
# and then search all the name tags which are P1's
# and use the val user function to get the value
return [val(node) for node in foo_dom.getElementsByTagName('name')
if node.firstChild.nodeValue in key]
bar(foo, 'P1')
[u'cccc', u'aaa', u'ss']
bar(foo, ('P1','P2'))
[u'cccc', u'cccc', u'aaa', u'ss']
问题内容: 我有两个域,是一对多关系中的一部分。我想知道如何查询孩子的父母FK吗?贝娄是父母/孩子的伪代码 上级: 儿童: 尽管我没有明确创建FK,但是grails会自行创建MySQL数据库。但是,当我想像这样通过FK查询孩子时: 我收到一个错误:找不到类[class mgr.AlumLanguage]的名称[alumProfileId]的属性 关于如何做到这一点的任何建议? 谢谢杰森 问题答
问题内容: 我期望我的jQuery代码使用此JSON: 这些数据将来自MySql表 : SQL查询应该是什么,以便输出 1个平面表 ,可以很容易地将其转换为JSON(在PHP或JavaScript / jQuery中)? 我什至以正确的方式走这条路吗? 问题答案: 您可以直接从MySQL生成JSON内容。这是可与MySQL 5.7或更高版本一起使用的解决方案。 首先,coonsider函数,该函数
我有一个JSON对象,如下所示: 我想检查是否存在一个值为“id2”的id,java中是否有任何UTIL允许我这样做,而无需遍历所有对象并将字符串与目标进行比较? 附言:我不想知道“id”字段是否存在,使用JSONObject.has(键),这不是我要问的。
问题内容: 我正在这个大型数据库上工作,该数据库具有很多SP中嵌入的业务知识[我知道!],并且SP之间有很多链接。即一个存储的过程调用另一个。 我想找出更新特定列的存储过程的列表。我该怎么做。 对于存储过程,如SQL表和分析器列中所述使用showplan_All 对我来说不起作用,因为这是一个共享的dev db。 如上所述,使用来自主数据库的Sp扫描系统文本中的Sp是不可行的,因为我无权访问主数据
我正在使用jpa的criteriabuilder,希望在jsonb列中查找json字段的值。jsonb如下所示: 我开始创建我的谓词,但我得到了错误。 我得到的错误是 psqlException:错误:函数json_extract(jsonb,字符变化)不存在提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。 有人能帮忙吗?
我有一个微服务,它主要使用与其他微服务对话。使用Eureka的服务发现机制,这项工作非常出色。 现在我迫切需要使用连接到外部系统,并且仍然使用如下所示的配置执行负载平衡。 : : 从我看过的许多文档中,建议禁用eureka以允许从可用的服务器列表中获取负载平衡。我做了跟进,并使用以下配置禁用它。 : 这使我能够为针对外部系统的外部客户端执行负载平衡,但需要使用服务发现的所有其他外部客户端都已中断。