我正在尝试获取 json 数据中的字段
输入json
{
"data": {
"file": [{
"id": "0001",
"name": "harsha"
},
{
"id": "0002",
"name": "manohar"
}
]
}
}
XSLT 样式表
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0"
xmlns="http://www.w3.org/2005/xpath-functions" xpath-default-namespace="http://www.w3.org/2005/xpath-functions" expand-text="yes">
<xsl:param name="input"/>
<xsl:output method="text"/>
<xsl:template name="xsl:initial-template">
<xsl:variable name="input-as-xml" select="json-to-xml($input)"/>
<xsl:variable name="transformed-xml" as="element(map)">
<xsl:for-each select="$input-as-xml/map/array[@key='file']">
<map>
<string key="date">
<xsl:value-of select="../string[@key='name']"/>
</string>
</map>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="xml-to-json($transformed-xml)"/>
</xsl:template>
</xsl:stylesheet>
在这里我试图获取名称字段但无法获取我获取的数据为空
{"date":""}
任何建议都会有所帮助...
答案 0 :(得分:1)
“..”在我看来是错误的 - 为什么你想要 array
元素的父元素?
我会在不转换为 XML 的情况下执行此操作。大致意思:
<xsl:variable name="input-as-map" select="parse-json($input)" as="map(*)"/>
<xsl:variable name="transformed-map" as="map(*)*">
<xsl:for-each select="$input-as-map?data?file?*">
<xsl:map key="'date'">
<xsl:value-of select="?name"/>
</xsl:map>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="serialize($transformed-map, map{'method':'json'}"/>
(未经测试,因为我不确定您想要什么输出)。
答案 1 :(得分:0)
我也不清楚你想要什么,也许
def track(self, appUserId, appEventName, appEventData):
asyncio.run(self.main(appUserId, appEventName, appEventData))
async def main(self, appUserId, appEventName, appEventData):
async with aiohttp.ClientSession() as session:
tasks = []
task = asyncio.ensure_future(self.sendData(session, {
"userId": self.appUserIdSandbox if (self.sandBoxEnabled == True) else appUserId,
"eventName": appEventName,
"eventData": appEventData
}))
tasks.append(task)
task_count = await asyncio.gather(*tasks)
async def sendData(self,session, appEventData):
response = {}
payload = json.dumps(appEventData)
headers = {
"Authorization": self.__authKey,
"Cache-Control": "no-cache",
"Content-Type": "application/json",
}
async with session.post(self.__apiUrl,
headers=headers,
data=payload) as response:
result_data = await response.json()
return response
为您提供可以使用的价值。