【发布时间】:2020-11-13 09:23:12
【问题描述】:
我有一个有效的 json 文件(在在线验证器上检查过)。 我正在使用 tExtractJsonFields 来提取数据。 当我使用 JsonPath 时一切都很好 但是当我尝试使用 xPath 时出现此错误:
The content of elements must consist of well-formed character data or markup. Nested exception: The content of elements must consist of well-formed character data or markup.
我需要使用 xpath,因为我在一个子元素上循环,但我还想获得一个根元素,即 ID。使用 xpath 我可以使用“../../id”这样做,但在 jsonpath 中我无法返回根级别。 请问我需要帮助。
{
"expand": "names,schema",
"startAt": 0,
"maxResults": 1,
"total": 1580,
"issues": [
{
"expand": "operations,versionedRepresentations,editmeta,changelog,transitions,renderedFields",
"id": "34202",
"self": "https://...",
"key": "DATA-1955",
"changelog": {
"startAt": 0,
"maxResults": 4,
"total": 4,
"histories": [
{
"id": "292501",
"author": {
"self": "https://tlassian.net/rest/api/2/user?accountId=.....",
"accountId": "651121611612",
"emailAddress": "test@sdfsdf.com",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png",
"24x24": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png",
"16x16": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png",
"32x32": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png"
},
"displayName": "test test",
"active": true,
"timeZone": "Asia/Beirut",
"accountType": "atlassian"
},
"created": "2020-11-12T14:42:42.397+0200",
"items": [
{
"field": "resolution",
"fieldtype": "jira",
"fieldId": "resolution",
"from": null,
"fromString": null,
"to": "10000",
"toString": "Done"
},
{
"field": "status",
"fieldtype": "jira",
"fieldId": "status",
"from": "3",
"fromString": "In Progress",
"to": "10001",
"toString": "Done"
}
]
},
{
"id": "291885",
"author": {
"self": "https://......",
"accountId": "5f8ede6e9csdwd31840075146dc139b",
"emailAddress": "test@sdfsdf.com",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png",
"24x24": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png",
"16x16": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png",
"32x32": "https://secure.gravatar.com/avatar/a1440042a929a36696d609892772a08e?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FTH-2.png"
},
"displayName": "test test",
"active": true,
"timeZone": "Asia/test",
"accountType": "atlassian"
},
"created": "2020-11-12T13:40:13.232+0200",
"items": [
{
"field": "status",
"fieldtype": "jira",
"fieldId": "status",
"from": "10000",
"fromString": "To Do",
"to": "3",
"toString": "In Progress"
}
]
},
{
"id": "291776",
"author": {
"self": "https://..........",
"accountId": "156516146865",
"emailAddress": "test@sdfsdf.com",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png",
"24x24": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png",
"16x16": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png",
"32x32": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png"
},
"displayName": "test test",
"active": true,
"timeZone": "Asia/test",
"accountType": "atlassian"
},
"created": "2020-11-12T13:36:39.861+0200",
"items": [
{
"field": "assignee",
"fieldtype": "jira",
"fieldId": "assignee",
"from": null,
"fromString": null,
"to": "5f8ede6e9c31840076dc139b",
"toString": "Test test",
"tmpFromAccountId": null,
"tmpToAccountId": "5f8ede6e9c31840076dc139b"
}
]
},
{
"id": "289995",
"author": {
"self": "https://.........",
"accountId": "asdasd",
"emailAddress": "test@sdfsdf.com",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png",
"24x24": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png",
"16x16": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png",
"32x32": "https://secure.gravatar.com/avatar/2e1767eb017dcb6bd02f8131f6b3613d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYM-6.png"
},
"displayName": "test test",
"active": true,
"timeZone": "Asia/sdsdsd",
"accountType": "atlassian"
},
"created": "2020-11-12T12:04:00.083+0200",
"items": [
{
"field": "Parent",
"fieldtype": "jira",
"from": null,
"fromString": null,
"to": "34194",
"toString": "DATA-1952"
}
]
}
]
}
}
]
}
这是我的 json 文件。 你告诉我上传我使用的 xpath,但问题是错误不在 xpath 中。
我已经循环播放“/issues” 并将“key”提取为字段
【问题讨论】:
-
显示你尝试过的数据和XPath
-
所以您正在尝试浏览 JSON 文件并使用 XPath 提取一些数据?
-
是的,但是当我尝试 xpath 时,它不适用于 talend 中的这个文件。我尝试了另一个较小的文件,它确实使用 xpath 工作。
-
这是正确的行为,因为 JsonPath 应该应用于 JSON 文件,XPath 应用于 XML。 XPath 不适用于 JSON!
-
我已将 XPATH 与另一个 json 文件一起使用。如果你能告诉我如何使用 jsonpath 在循环之外获取一个元素,它应该可以解决我的问题。
标签: json xpath talend jsonpath