Lut*_*ker 2 javascript java ajax rest json
我有一个webservice(RestEasy)返回一个包含List <..>元素的JSON对象.我试图在Javascript for循环中解析结果.如果List <>元素有2个或更多元素,那么一切都很好.如果List <>元素只有一个元素,则Javascript循环会中断.
这是因为当只有一个元素时,JSON表示实际上会发生变化.例如:
{"parent":[{"a":1},{"b":2}]}
Run Code Online (Sandbox Code Playgroud)
工作得很好...但由于某种原因,JSON对于一个孩子看起来像这样:
{"parent":{"a":1}}
Run Code Online (Sandbox Code Playgroud)
注意......缺少数组指示符[].
那是标准的JSON吗?这种表示法强制在我的javascript中对预期数组的存在或大小等进行丑陋的,不必要的检查...
这是一贯的标准做法吗?为什么JSON不返回一个列表?
{"parent":[{"a":1}]}
Run Code Online (Sandbox Code Playgroud)
这可能是我的服务器端的工件,并且其他服务器端生成器是否实际构建了不同的JSON表示?我甚至尝试使用dojo.forEach并且它工作得很好,直到它到达单个元素数组,不幸的是,缺少任何类型的列表表示法.
这与JSON格式无关.JSON格式绝对区分{"a":1}(对象)和[{"a":1}](包含对象作为其唯一元素的数组).
看到它的行为不同是服务器端生成器中的一个错误.您必须深入研究该代码,以找出它为什么会选择歪曲单元素数组.
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |