如何从Java正确生成JSONArray?

时间:2012-01-27 07:57:56

标签: java arrays json

我正在尝试使用Java生成那种JSON字符串(目的:flot for Android):

{
"data": [[1999, 1], [2000, 0.23], [2001, 3], [2002, 4], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]]
}

要做到这一点,我正在使用JSONArray:

JSONArray jsonArray = new JSONArray();
jsonArray.put("[1999, 1]");
jsonArray.put("[2000, 0.23]");
jsonArray.put("[2001, 3]");
...

但我得到的唯一结果是:

["[1999, 1]","[2000, 0.23]","[2001, 3]",..."[2008, 0.9]"]

如何删除方括号之间的引用?我可以输入数组的项目吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

您正在做的只是将字符串添加到数组中。你不想要字符串,你想要嵌套数组。所以你必须使用嵌套的JSONArray对象:

以下是标准方式:

JSONArray nested1 = new JSONArray();
nested1.put(1999);
nested1.put(1);
jsonArray.put(nested1);

或者,simpler

jsonArray.put(new JSONArray(Arrays.asList(1999, 1)));

或者,even simpler

jsonArray.put(Arrays.asList(1999, 1));
// or use an int array:
jsonArray.put(new int[]{1999, 1});