我完全不认识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的新手。
答案 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的问题。你会得到粗略的想法
答案 4 :(得分:0)
UserEntity user=new Gson().fromJson(yourString,UserEntity.class);