JSON多维数组到Java多维数组
问题描述:
我想将字符串格式是多维的JSONArray转换为Java多维数组。我已经尝试了很多方法,并且迷失在我的任务中。希望这里的某个人能够带来一些清晰。转换为普通数组很好。但是当我试图将自己扩展到多维时,我不能。JSON多维数组到Java多维数组
public static final String stationData[][] = {
// Station Names
{ "The Point", "Spencer Dock", "Mayor Square - NCI",
"George's Dock", "Bus Aras", "Connolly", "Brides Glen",
"Cherrywood", "Laughanstown", "Carrickmines" },
// Station Url Fragments
{ "The%20Point", "Spencer%20Dock", "Mayor%20Square%20-%20NCI",
"George%27s%20Dock", "Bus%26aacute%3Bras", "Connolly",
"Brides%20Glen", "Cherrywood", "Laughanstown",
"Carrickmines"}
};
JSONArray myArray = (JSONArray) JSONSerializer.toJSON(stationData);
我只是玩弄这个数组,看看我能得到它的工作。所以在我的代码中的这一点,任何人都可以告诉我如何:从JSONArray我重新创建它创建的Java多维数组?
帮助将不胜感激。谢谢。
答
原来我的问题是很琐碎。我担心我无法用1或2行代码来做到这一点,我几乎不得不手动填充数据。无论如何,我是这么做的。
JSONArray myArray = (JSONArray) JSONSerializer.toJSON(stationData);
//Slightly hard coded here.
String[][] test = new String[myArray.getJSONArray(0).size()][myArray.getJSONArray(1).size()];
for(int i = 0; i < myArray.size(); i++){
for(int j = 0; j < myArray.getJSONArray(i).size(); j++){
test[i][j] = (String) myArray.getJSONArray(i).get(j);
}
}
答
也许您正在寻找这样的:
public static final String stationData[][] = {
{ "The Point", "The%20Point"},
{"Spencer Dock", "Spencer%20Dock"},
{"Mayor Square - NCI","Mayor%20Square%20-%20NCI"},
{"George's Dock", "George%27s%20Dock"}
};
我知道这个问题是专门关于JSON - > Java数组;也许这里有一个一般情况,但为什么不使用URL编码功能而不是这种映射?或者也许有什么在http://stackoverflow.com/questions/338586/a-better-java-json-library,这将有所帮助。 – Jonathan 2011-06-06 11:19:27
我可能会研究它。一直尝试这种方式一段时间,所以我理想喜欢看到它通过,但我最终可能会尝试这些方法,谢谢。 – Hugs 2011-06-06 11:39:11