繁体   English   中英

如何在android中打破这个Json字符串?

[英]How can I break this Json string in android?

我的 JSON 字符串是:[["Canada", 3], ["SriLanka", 6], ["China", 5], ["UK", 4]]

try {
  JSONArray ja = new JSONArray("[['Canada', 3], ['SriLanka', 6], ['China', 5], ['UK', 4]]");
  for(int i=0;i<ja.length();i++){
    JSONArray ja1 = ja.getJSONArray(i);
    System.out.println("Country Name = "+ja1.get(0));
  }
} catch (JSONException e) {
    e.printStackTrace();
}

这不是 JSON 的标准。 您必须以这种方式构建它:

[{"country":"Canada", "x":3}, {"country":"SriLanka", "x":6}, {"country":"China", "x":5}...]

括号表示 JSONArray

无论如何,如果想要拆分字符串.. 使用 Java 基础知识......这不是 Android 问题。

通过正则表达式和模式拆分,使用拆分 String 基本方法,或将它们作为 JSONArray 处理..

您可以在其他帖子中找到很多信息。

PS:评论太长了。

我希望我会帮助你。

你可以这样做:

JSONArray array=new JSONArray(jsonString);
    for(int i=0;i<array.length();i++){
     JSONArray array1=array.getJSONArray(i);
     for(int j=0;j<array1.length();j++){
      System.out.print(array1.getString(0));
      System.out.print(array1.getInt(1));
      }
      System.out.println("");
    }

正确的JSON格式应如下所示,

[{'name':'Canada', 'value':'3'}, {'name':'SriLanka', 'value':'6'}, {'name': 'China', 'value': '5'}]

那么你可以这样做,

List<Country> list2 = mapper.readValue(jsonString, 
TypeFactory.defaultInstance().constructCollectionType(List.class,  Country.class));

在哪里

国家是,

public class Country {
   private int value;
   private String name;
   //getters and setters
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM