【问题标题】:How to evaluate string as array in Java?如何在Java中将字符串评估为数组?
【发布时间】:2014-02-22 04:54:53
【问题描述】:

我有一个这样的String

[["123","Albert","foo"],["456","Mark","bar"],["789","Jackson","baz"]]

如何把它变成对应的数组?

我从Java (Android) 中的HttpPost 收到此回复。

提前致谢

【问题讨论】:

  • 看起来像json,使用json解析器。
  • 可能想要指定你是想要一个 9 的数组,还是 3 个 3 的数组
  • @Sotirios Delimanolis:我收到一个错误:无法在 JSONObject 中转换数组 user3126670:链中显示的数组 用循环列出它们 123 Albert foo Mark 456 bar 789 Jackson baz
  • 该错误非常具有描述性。您正在尝试从 json 数组中获取 json 对象。那没有意义。改为获取 json 数组。
  • 假设在数据库的表中,列有:id,name,nick try { String s = ""; JSONArray jArray = new JSONArray(result); for (int i=0;i

标签: java android arrays string multidimensional-array


【解决方案1】:

试试这个。

JSONArray new_array = new JSONArray(string);
for(int i =0; i < new_array.length(); i++){
     JSONArray arr = new_array.getJSONArray(i);
     for(int j =0; j < arr.length(); j++){
          Log.v("result--",""+arr.getString(j));
     }
}

【讨论】:

  • 有没有办法让它成为一个常规的二维数组?因为我需要操纵索引或者使用 JSON 我可以操纵索引?显示类似: s=s + "Id :"+arr[0]+"\n"+ "Name :"+arr[1]+"\n"+ "Nick :"+arr[2]+" \n\n";
  • 完成!不是 arr[index] 是 arr.get(index) :D
【解决方案2】:

使用GSON 喜欢:

Gson gson = new Gson();
String[][] myTypes = gson.fromJson(str, String[][].class);

搜索更多关于如何使用GSON库的示例。

【讨论】:

    【解决方案3】:

    在您的格式中,您必须为 JSONArray 而不是 JSONObject 获取数据。

    所以你必须使用这个才有意义

        JSONArray jArray = new JSONArray(yourResponsestr);
        for(int i =0; i < jArray .length(); i++){
        JSONArray arr = myarray.getJSONArray(i);
        for(int j =0; j < myarray.length(); j++){
          Log.v("Response Array -->",""+arr.getString(j));
        }
        }
    

    【讨论】:

      猜你喜欢
      • 2019-01-06
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多