获取的json中未包含括号

获取的json中未包含括号,json,ajax,servlets,highcharts,Json,Ajax,Servlets,Highcharts,我在Servlet上有以下代码 Map<String, Object> data = new HashMap<String, Object>(); data.put( "x", "[[0, 29.9],[1, 71.5],[3, 106.4]]" ); data.put( "y", "[[0.5, 28],[1.5, 60],[3, 100]]" );

我在Servlet上有以下代码

Map<String, Object> data = new HashMap<String, Object>();
        data.put( "x", "[[0, 29.9],[1, 71.5],[3, 106.4]]" );
        data.put( "y", "[[0.5, 28],[1.5, 60],[3, 100]]" );
        data.put("z","[[0.2, 20],[1.5, 40],[3, 120]]");
        JSONObject json = new JSONObject();
        json.putAll( data );
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().println(json);
问题是控制台上打印的每个值都删除了[]

x0,29.9,1,71.5,3106.4

y 0.5,28,1.5,60,3100

z 0.2,20,1.5,40,3120

我期待着看到这个

x[[0,29.9],[1,71.5],[3106.4]]

y[[0.5,28],[1.5,60],[3100]]

z[[0.2,20],[1.5,40],[3120]]

但这并没有发生! 你知道为什么要拆下支架,怎么做才能把它们取回来吗

谢谢,

索林问题:

您可以从
数据
映射创建JSON:

 data.put( "x", "[[0, 29.9],[1, 71.5],[3, 106.4]]" );
 data.put( "y", "[[0.5, 28],[1.5, 60],[3, 100]]" );
 data.put("z","[[0.2, 20],[1.5, 40],[3, 120]]");
这将产生一个JSON字符串,该字符串类似于:

{
    "x": [[0, 29.9],[1, 71.5],[3, 106.4]],
    "y": [[0.5, 28],[1.5, 60],[3, 100]],
    "z": [[0.2, 20],[1.5, 40],[3, 120]]
}
现在用JavaScript术语来说,当浏览器看到这个结果时,它将把它解释为一个带有键的对象,
x,y,z
,每个键都有一个数组作为其值。这就是为什么您没有在控制台中显示
[]
,这是因为
[]
用于指示JSON中的数组,并且在解释值后不再需要该数组。如果要强制执行字符串,请尝试使用:

 data.put( "x", "\"[[0, 29.9],[1, 71.5],[3, 106.4]]\"" );
 data.put( "y", "\"[[0.5, 28],[1.5, 60],[3, 100]]\"" );
 data.put("z","\"[[0.2, 20],[1.5, 40],[3, 120]]\"");

json术语中的
[[1,2]]
属于
Array[Array]
类型,而不是
Array[String]
非常感谢,非常好的回答,作为json和AJAX的初学者,这可能是我提出的一个愚蠢的问题。。。
 data.put( "x", "\"[[0, 29.9],[1, 71.5],[3, 106.4]]\"" );
 data.put( "y", "\"[[0.5, 28],[1.5, 60],[3, 100]]\"" );
 data.put("z","\"[[0.2, 20],[1.5, 40],[3, 120]]\"");