java - 无法为客户端形成正确的 JSON 响应

标签 java javascript json get

我以这种方式发送 GET 请求:

$.ajax({
    url: myUrl,
    type:"GET",
    dataType: "json",
    success: callback        
});

在服务器端,我形成以下 json 字符串并将其发送到客户端:

"{'composers':
    {'composer':
        {
        'id':2,
        'firstName': 'Arcangelo',
        'lastName': 'Corelli'
        }
    },
    {'composer':
        {
        'id':7,
        'firstName': 'Antonio',
        'lastName': 'Vivaldi'
        }
    }
}"

客户端什么也得不到! 但是如果我使用 XML 格式作为响应,它就可以正常工作!我设置的内容类型如下:

response.setContentType("application/json");

最佳答案

JSON 需要将 composers 属性设置为数组:

{
    "composers": [
        {
            "composer": {
                "id": 2,
                "firstName": "Arcangelo",
                "lastName": "Corelli"
            }
        },
        {
            "composer": {
                "id": 7,
                "firstName": "Antonio",
                "lastName": "Vivaldi"
            }
        }
    ]
}

我还推荐一个更精简的版本,它删除了composer属性,因为分配给数组的属性composers包含composer对象是非常直观的。

{
    "composers": [
        {
                "id": 2,
                "firstName": "Arcangelo",
                "lastName": "Corelli"
        },
        {
                "id": 7,
                "firstName": "Antonio",
                "lastName": "Vivaldi"
        }
    ]
}

此外,JSON 使用双引号而不是单引号,您需要根据情况进行替换。

当您将来遇到此类问题时,只需将您的 JSON 转移到 json lint为了验证,它会告诉你所有的问题。

关于java - 无法为客户端形成正确的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607878/

相关文章:

javascript - 使用对象而不是列表填充 react 表

javascript - 如何处理除法运算符的溢出

javascript - JSON 请求中既没有 Alert 也没有 Console.log 触发

java - 在 servlet 外部访问 session 变量

java - 将自定义对象从嵌入式 FX (JFXPanel) 拖放到 Swing

Java 正则表达式 : Matching a string between 2 colons

javascript - Discord.js 和 ytdl 的未知问题,完全跳过播放音频

iOS - Parse.com 导出数据自动化

c++ - Rapidjson:向文档添加外部子文档

java - maven.plugin.classpath 和 maven.runtime.classpath 有什么区别