1

我在解析 JSON 响应时遇到问题。它基本上返回一个 JSON 对象数组,例如

[
  {"id":"123","value":"abc","description":"something"},
  {"id":"456","value":null,"description":"something else"},
  {"id":"789","value":"def","description":"something more"}
]

当我使用以下正则表达式时

"id":"(.+?)","value":(?!null),"description":"(.+?)"

在正则表达式提取器中,我得到以下结果:

variable[0][1]:123, variable[0][2]:something
variable[1][1]:456, variable[1][2]:something more

这是错误的,因为匹配必须在第二个对象中被破坏并且没有拾取第二个 id 并使用第三个对象的描述。我希望 id 是 789 而不是 456。

4

1 回答 1

1

我找到了自己的答案。如果单词之间有一个 } 括号,我需要中断比赛,例如

"id":"(.+?)"[^\}]*"value":(?!null)[^\}]*"description":"(.+?)"

容易修复:)

于 2012-10-09T20:09:39.873 回答