我已经使用嵌套查询定义了一个restful服务。输出映射以XML定义。我得到了正确的XML响应。但是如果我使用Accept请求JSON响应:Application / json我得到
{
"Fault": {
"faultcode": "soapenv:Server",
"faultstring": "Error while writing to the output stream using JsonWriter",
"detail": ""
}
}
我在3.5.0中得到了以下异常,我发现一个jira说它已在3.5.1中修复。所以我尝试了3.5.1现在我没有得到低于异常但是相同的输出。
javax.xml.stream.XMLStreamException: Invalid Staring element
请注意我在查询中也尝试了escapeNonPrintableChar="true"
选项,但没有用。奇怪的是它适用于不同的数据集。只有一个特定的数据集会抛出此输出。
我已经更改了下面的JSON格式化程序并使其工作但是存在问题。
<messageFormatter contentType="application/json" class="org.apache.axis2.json.JSONMessageFormatter"/>
<!--messageFormatter contentType="application/json" class="org.apache.axis2.json.gson.JsonFormatter" / -->
<messageBuilder contentType="application/json" class="org.apache.axis2.json.JSONOMBuilder"/>
<!--messageBuilder contentType="application/json" class="org.apache.axis2.json.gson.JsonBuilder" /-->
如果我使用上面的格式化程序,则无法正确表示空值。就像我得到的那样
"Person": {
"Name": {
"@nil": "true"
}
但我想要它(就像其他JSON格式化程序一样)
"Person": {
"Name": null
}
请帮忙。这个区域还有一个小虫吗?
答案 0 :(得分:3)
当您在输出响应中创建查询时,您可以定义要接收响应的格式,您可以选择xml或json,在您提及的情况下,您可以选择json选项,然后选择生成响应,这会创建此json结构。
{
"entries": {
"entry": [
{
"field1": "$column1",
"field2": "$column2"
}
]
}
}
然后,您可以修改字段所需的答案。以下是我在查询中如何使用它的示例
{
"Pharmacies": {
"Pharmacy": [
{
"ID": "$Id",
"Descripcion": "$Desc",
"Latitude": "$Latitude",
"Longitude": "$Longitude",
"Image": "$Image"
}
]
}
}
&#34; $&#34;的值对应于查询列的名称
此致