怎么把下面这个json解析后的结果存到集合里

怎么把下面这个json解析后的结果存到集合里
"items":[{"name":"wang","age":"12","id":"0"},{"name":"li","age":"12","id":"0"},{"name":"liu","age":"12","id":"0"},{"name":"sun","age":"12","id":"0"},{"name":"zhao","age":"12","id":"0"},{"name":"wu","age":"12","id":"0"},{"name":"niu","age":"12","id":"0"}]

用JSON的包 定义一个集合,看你用什么JSON包,
里面一般有一个json.arrayto

List 【Map【String,String 】 】
试一下

你可以建立一个model:{name,age,id},然后通过映射一一一对应,再然后外面用一个数组包起来。

使用com.alibaba.fastjson

  • 通过maven引入
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.46</version>
</dependency>
  • 代码片段
//你的json字符串
String jsonStr = "...";
jsonObject = JSON.parseObject(jsonStr);
JSONArray arr = jsonObject.getJSONArray("items");
//下面这一步即可得到集合,注意Map可以是替换为你需要的javaBean
List<Map> list = arr.toJavaList(Map.class);

使用fastjson里面的JSON对象即可转换,要注意定义的实体对象。
首先引入maven依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.37</version>
</dependency>

代码参考如下:

package com.qianqiangongzi.utils;

import java.util.List;

import com.alibaba.fastjson.JSON;

public class StringToObjectUtils {
    public static void main(String[] args) {
        String jsonStr = "{\"items\":[" + "{\"name\":\"wang\",\"age\":\"12\",\"id\":\"0\"},"
                + "{\"name\":\"li\",\"age\":\"12\",\"id\":\"0\"}," + "{\"name\":\"liu\",\"age\":\"12\",\"id\":\"0\"},"
                + "{\"name\":\"sun\",\"age\":\"12\",\"id\":\"0\"}," + "{\"name\":\"zhao\",\"age\":\"12\",\"id\":\"0\"},"
                + "{\"name\":\"wu\",\"age\":\"12\",\"id\":\"0\"}," + "{\"name\":\"niu\",\"age\":\"12\",\"id\":\"0\"}]}";

        Item item = getItem(jsonStr);
        System.out.println(JSON.toJSON(item));
    }

    /**
     * json字符串转json对象
     * 
     * @param jsonStr
     * @return
     */
    public static Item getItem(String jsonStr) {
        Item item = JSON.parseObject(jsonStr, Item.class);
        return item;
    }

}

class Item {
    private List<Student> items;

    public List<Student> getItems() {
        return items;
    }

    public void setItems(List<Student> items) {
        this.items = items;
    }

    @Override
    public String toString() {
        return "Item [items=" + items + "]";
    }

}

class Student {
    private String name;
    private String age;
    private String id;

    public Student() {
    }

    public Student(String name, String age, String id) {
        super();
        this.name = name;
        this.age = age;
        this.id = id;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + ", id=" + id + "]";
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

}

运行截图:

运行结果

不亲自试过,有怎么知道能行!编码不易,望采纳。

第一步,下新建一个普通java项目,
第二步,到下面的网址,如下图,下载jar包(如果你是maven项目,直接添加依赖即可)
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.9.8
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.9.8
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.9.8
图片说明
第三步:导入jar,然后代码如下(需要说明的是,你的json字符串在最外层,需要加一个{}才是正确的), 为了3简单,3个类写在一个java文件里面

import java.io.IOException;
import java.util.List;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;

 class Item {

          private String id;
          private String name;
          private String age;

          public String getId() {
            return id;
          }

          public void setId(String id) {
            this.id = id;
          }

          public String getName() {
            return name;
          }

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

          public String getAge() {
            return age;
          }

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

          @Override
          public String toString() {
            return "这个是对象数据啊啊啊  Item [id=" + id + ", name=" + name + ", age=" + age + "]";
        }

          public Item() {
                     //这个必须
          }

 }


class MyDataList {
    private List<Item> items;

        public List<Item> getItems() {
            return items;
        }

        public void setItems(List<Item> items) {
            this.items = items;
        }

        public MyDataList() {
                   //这个必须
        }

        @Override
        public String toString() {
            return "MyDataList [items=" + items + "]";
        }
}



public class JsontTest {

static String json = "{\"items\":[{\"name\":\"wang\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"li\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"liu\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"sun\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"zhao\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"wu\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"niu\",\"age\":\"12\",\"id\":\"0\"}] }";

public static void main(String[] args) {

    System.out.println("您处理之前的Json是" + json);
    /**
     * ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。
     * ObjectMapper有多个JSON序列化的方法,可以把JSON字符串保存File、OutputStream等不同的介质中。
     * writeValue(File arg0, Object arg1)把arg1转成json序列,并保存到arg0文件中。
     * writeValue(OutputStream arg0, Object arg1)把arg1转成json序列,并保存到arg0输出流中。
     * writeValueAsBytes(Object arg0)把arg0转成json序列,并把结果输出成字节数组。
     * writeValueAsString(Object arg0)把arg0转成json序列,并把结果输出成字符串。
     */
    ObjectMapper objectMapper = new ObjectMapper();
    // ObjectReader reader = objectMapper.readerFor(new TypeReference<Map<String,Object>>() {

    ObjectReader reader = objectMapper.readerFor(new TypeReference<MyDataList>() {
    });
    try {
        MyDataList data = reader.readValue(json);

        System.out.println("转换后的对象List" + data);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

json字符串转成json数组对象,遍历,转成

List<Map<object,object>>

或者自己创建个对象

List<自定义对象>

c# 写法 给你个参考
public class Test
{
public List items { get; set; }
}

public class Item
{
public string name { get; set; }
public string age { get; set; }
public string id { get; set; }
}

public static T ToJsonModel(this string str)
{
return JsonConvert.DeserializeObject(str);
}

public void Main(string json)
{
Test test = new Test();
test = json.ToJsonModel();
}

app目录build里面dependencies 中添加implementation 'com.google.code.gson:gson:2.8.5'
用Gson的话不用自己去写一堆的set,get,Androidstudio中直接有插件GsonFormat可以快速生成
public class Items {

private List<ItemsBean> items;

public List<ItemsBean> getItems() {
    return items;
}

public void setItems(List<ItemsBean> items) {
    this.items = items;
}

public static class ItemsBean {
    /**
     * name : wang
     * age : 12
     * id : 0
     */

    private String name;
    private String age;
    private String id;

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

}

String str = "{\"items\":[{\"name\":\"wang\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"li\",\"age\":\"12\",\"id\":\"0\"}," +
"{\"name\":\"liu\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"sun\",\"age\":\"12\",\"id\":\"0\"}," +
"{\"name\":\"zhao\",\"age\":\"12\",\"id\":\"0\"}," +
"{\"name\":\"wu\",\"age\":\"12\",\"id\":\"0\"},{\"name\":\"niu\",\"age\":\"12\",\"id\":\"0\"}]}";
Gson gson = new Gson();
Items items = new Gson().fromJson(str, Items.class);
if (items == null)
return;
List list = items.getItems();
if (list == null | list.size() == 0)
return;
Log.e("items----", gson.toJson(list));

            Log输出如下:
            items----: [{"age":"12","id":"0","name":"wang"},{"age":"12","id":"0","name":"li"},{"age":"12","id":"0","name":"liu"},{"age":"12","id":"0","name":"sun"},{"age":"12","id":"0","name":"zhao"},{"age":"12","id":"0","name":"wu"},{"age":"12","id":"0","name":"niu"}]

悬赏分数多,就是不一样啊,还有粘贴代码的 - -。
首先你的这段报文,就不是Json,两边的大括号是必须的。非要解析的话,可以前后加{}
有了Json,剩下的就是第三方包的威力了,Gson、Jackson、Fastjson,爱用啥用啥,
也不需要模型来映射,包里都有相应的抽象。

我就混混,万一分给我了呢