2011-06-06 183 views
0

我想将字符串格式是多维的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

我知道这个问题是专门关于JSON - > Java数组;也许这里有一个一般情况,但为什么不使用URL编码功能而不是这种映射?或者也许有什么在http://stackoverflow.com/questions/338586/a-better-java-json-library,这将有所帮助。 – Jonathan 2011-06-06 11:19:27

+0

我可能会研究它。一直尝试这种方式一段时间,所以我理想喜欢看到它通过,但我最终可能会尝试这些方法,谢谢。 – Hugs 2011-06-06 11:39:11

回答

1

原来我的问题是很琐碎。我担心我无法用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); 

     } 
    } 
0

也许您正在寻找这样的:

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"} 
}; 
+0

没有抱歉我需要将我的多维JSONArray转换回Java的代码。感谢寿。 – Hugs 2011-06-06 11:19:29

+0

那么,你有什么?来自第三方库的对象? – SJuan76 2011-06-06 11:47:28

+0

是的,这是我打算实现的。现在我只是想转换数组。 – Hugs 2011-06-06 11:50:44