如何在数组中获取json值

时间:2017-02-21 07:14:01

标签: android arrays json

我完全不认识Json。现在我在Android项目中工作。我知道如何使用Array。我的Android项目中的Asset文件夹中有Json文件。 我必须从json数据中获取标准值并将其存储在空数组中。我的json数据是,

[
{
    "name":"aaa",
    "surname":"bbb",
    "age":"18",
    "div":"A",
    "standard":"7"
},
{
    "name":"ccc",
    "surname":"ddd",
    "age":"17",
    "div":"B",
    "standard":"7"
},
{
    "name":"eee",
    "surname":"fff",
    "age":"18",
    "div":"A",
    "standard":"8"
},
{
    "name":"ggg",
    "surname":"hhh",
    "age":"17",
    "div":"A",
    "standard":"7"
},
{
    "name":"sss",
    "surname":"ddd",
    "age":"18",
    "div":"A",
    "standard":"8"
},
{
    "name":"www",
    "surname":"ggg",
    "age":"17",
    "div":"A",
    "standard":"7"
},
{
    "name":"ggg",
    "surname":"ccc",
    "age":"18",
    "div":"B",
    "standard":"6"
}

] 我无法通过这种方式实现这一目标。因为我必须检查json数据中的每个标准并将其添加到为存储标准值而创建的数组中,以便我可以将这些标准值与每个标准值进行比较(如果它已经存在于数组中,它可以检查josn数据中的下一个索引和因此,唯一值可以存储在may数组中。

我不知道如何实现这一点,因为我是android和json的新手。

5 个答案:

答案 0 :(得分:2)

使用gson轻松解析json

TypeToken> token = new TypeToken>(){}; List animals = gson.fromJson(data,token.getType());

您可以使用http://www.jsonschema2pojo.org/创建用户类

public class User {

@SerializedName("name")
@Expose
private String name;
@SerializedName("surname")
@Expose
private String surname;
@SerializedName("age")
@Expose
private String age;
@SerializedName("div")
@Expose
private String div;
@SerializedName("standard")
@Expose
private String standard;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSurname() {
return surname;
}

public void setSurname(String surname) {
this.surname = surname;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getDiv() {
return div;
}

public void setDiv(String div) {
this.div = div;
}

public String getStandard() {
return standard;
}

public void setStandard(String standard) {
this.standard = standard;
}

}

答案 1 :(得分:0)

你可以这样做:

 //Global Declared 
    ArrayList<String> allStanderds = new ArrayList<>();

    allStanderds.clear();
        try{
             JSONArray araay = new JSONArray(Your_Json_Array_String);
             for (int i = 0; i <array.length() ; i++) {

                  JSONObject jsonObject = new array.getJSONObject(i);

                  String standard = jsonObject.getString("standard");

                  if(!allStanderds.contains(standard)){
                    allStanderds.add(standard);
                  }

             }
        }catch (Exception e) {
         e.printStackTrace();
        }

// use allStanderds ArrayList for SetAdapter for Spinner.

快乐编码&gt; :)

答案 2 :(得分:0)

请尝试使用此

  try{
    String assestValue = getStringFromAssets();

    JSONArray arr = new JSONArray(assestValue);

        int count = arr.length();
        for (int i=0; i < count; i++){
            JSONObject obj = arr.getJSONObject(i);

            String name = obj.getString("name");
            String surname = obj.getString("surname");
            String age = obj.getString("age");
            String div = obj.getString("div");
            String standard = obj.getString("standard");

        }

    }catch (JSONException e){
        e.printStackTrace();
    }



public String getStringFromAssets(){

    String str = "";
    try {
        StringBuilder buf = new StringBuilder();
        InputStream json = getAssets().open("contents.json");//put your json name
        BufferedReader in =
                new BufferedReader(new InputStreamReader(json, "UTF-8"));


        while ((str = in.readLine()) != null) {
            buf.append(str);
        }

        in.close();

        return str;

    }catch (Exception e){
        e.printStackTrace();
    }

    return str;
}

享受编程:)

答案 3 :(得分:0)

使用GSON解析JSON数组.GSON将提供非常有用的API

请参阅我之前提出的有关与JSON解析相关的SO的问题。你会得到粗略的想法

How to parse nested array through GSON

答案 4 :(得分:0)

  1. 在android studio中安装GsonFormat插件
  2. 使用您的json字符串生成用户实体(例如:UserEntity.class)
  3. 现在,您可以使用UserEntity user=new Gson().fromJson(yourString,UserEntity.class);
  4. 现在,您的json字符串现在存储在Object user中;