给定以下 HTTP 响应:
{"id":"1", "name":test"}
目前,当您在“版本 > 首选项 > 项目设置 > 模块管理器 > JSON”中选中“将 JSON 请求/响应视为 xml 内容”(以便能够使用 xpath 而不是正则表达式)时,您完全没用像这样的东西:
<ObjectNode>
<__children>
<entry>
<string>id</string>
<__value>1</__value>
</entry>
etc...
注意:这是没用的,因为当您有深度 JSON 响应时,您的 XPath 如下: ArrayNode/__children/child::ObjectNode/__children/entry[child::string/text()='data']/ObjectNode/__children/entry [child::string/text()='id']/IntNode/__value
我设法创建了一个扩展,在其中解析 JSONObject 或 JSONArray 中的 JSON,然后调用
return "<root>"+XML.toString(json)+"</root>";
这给了我一个美丽的
<root><id>1</id><name>test</name></root>
注意:我可以使用 xpath 轻松处理
问题是然后 Neoload 将其转换为
<String><root><id>etc...
这和第一个东西一样没用(可能更没用,因为 XPath 不再是一个选项,因为我只有一个节点)。
所以我的问题是如何改变 Neoload 转换解码器返回值的方式?
我曾尝试直接在解码器中返回 JSONObject 或 JSONArray,然后使用 Namer,但 Namer 似乎仅用于请求,而不用于响应。
任何提示表示赞赏!