json

在线解析:https://c.runoob.com/front-end/53

https://www.bejson.com/zhuanyi/

https://www.bejson.com/

https://www.json.cn/

https://c.runoob.com/front-end/53

1. 将json字符串转化成List<Map < String , Object>>对象

import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 
 * @create 2018-05-04 14:13
 * @description 将json字符串转化成List<Map < String , Object>>对象
 *               1. http://www.yq1012.com/myweb/1469.html
 * @@since 1.0.0
 */

public class GsonListMap {

    public static void main(String args[]){
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("key1", "value1");
        map.put("key2", "value2");
        Map<String,Object> map2 = new HashMap<String,Object>();
        map2.put("key1", 1);
        map2.put("key2", 2);
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        list.add(map);
        list.add(map2);
        Gson gson =  new Gson();
        String jsonString = gson.toJson(list);
//        System.out.println("json字符串:"+jsonString);
        //解析json字符串
        List<Map<String,Object>> list2 = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>(){}.getType());
//          List<Map<String,Object>> list2 = gson.fromJson(jsonString, List.class);
//          List<Map<String,Object>> list2 = JSON.parseObject(jsonString, List.class);
        for (Map<String,Object> map1:list2
             ) {
            for (Object key : map1.values()) {
                System.out.println(key);
            }
            }
        }
    }

 

2. 将json字符串转化成List<JavaBean>对象

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.List;

/**
 * @author
 * @create 2018-05-04 13:55
 * @description  1. http://www.yq1012.com/myweb/1469.html
 *                2. 将json字符串转化成List<JavaBean>对象
 *
 * @since 1.0.0
 */

public class GsonListObject {

    public static void main(String args[]){
        Person person1 = new Person("1","gson1",1);
        Person person2 = new Person("2","gson2",2);
        List<Person> persons = new ArrayList<Person>();
        persons.add(person1);
        persons.add(person2);
        Gson gson = new Gson();
        //这里将lsit<javabean>转化成json字符串
        String jsonString = gson.toJson(persons);
//        System.out.println(jsonString);
        //解析json字符串
        List<Person> persons2 = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());

        for (Person person:persons2
             ) {
            System.out.println(person);
        }
    }
}

 

3. 将json字符串转化成JavaBean对象
import com.google.gson.Gson;

/**
 * @author 
 * @create 2018-05-04 13:40
 * @description : 1.http://www.yq1012.com/myweb/1469.html
 *                 2.将json字符串转化成JavaBean对象
 *                 3.
 * @@since 1.0.0
 */

public class GsonObject {

    public static void main(String args[]){
        Person person = new Person("1","gson",1);
        Gson gson = new Gson();
       //这里将javabean转化成json字符串
        String jsonString = gson.toJson(person);
//        System.out.println(jsonString);
        //这里将json字符串转化成javabean对象,
        person = gson.fromJson(jsonString,Person.class);

        System.out.println(person);

    }
}

4. 将json字符串转化成List<String>对象

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 
 * @create 2018-05-04 14:07
 * @description 将json字符串转化成List<String>对象
 *               1. http://www.yq1012.com/myweb/1469.html
 * @@since 1.0.0
 */

public class JsonToList {
    public static void main(String args[]){
        List<String> list = new ArrayList<String>();
        list.add("gson1");
        list.add("gson2");
        list.add("gson3");
        Gson gson = new Gson();
        String jsonString = gson.toJson(list);
//        System.out.println("json字符串:"+jsonString);
       //解析json字符串
        List<String> list2 = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());

        for (int i = 0; i <list2.size() ; i++) {
            System.out.println(list2.get(i));
        }
    }
}

5. String 转json

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 
 * @create 2018-05-04 14:33
 * @description 1. String 转json
 *               2. http://www.yq1012.com/shizhan/4284.html
 * @since 1.0.0
 */
public class StringToJaon {
    public static void main(String args[]){
        //String 转json
        String str="{\"website\":\"tool.yq1012.com\"}";
        JSONObject json = JSON.parseObject(str);
//        System.out.println(json.toString());

        //String  转map
        String str1="{key3=value3, key2={key3=value3, key2=value2, key1=value1},key1=value1}";
        Map map = (Map<String, Object>) getValue(str1);
//        System.out.println(map.toString());

        //map  转  json
        JSONObject json1 =  JSONObject.parseObject(JSON.toJSONString(map));;
//        System.out.println(json1.toString());
        //json 转 map
        String str2 = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";
        Map mapType = JSON.parseObject(str2,Map.class);
//        System.out.println(mapType.toString());
    }

    //{key3=value3, key2={key3=value3, key2=value2, key1=value1},key1=value1}

    public static Object getValue(String param) {
        Map map = new HashMap();
        String str = "";
        String key = "";
        Object value = "";
        char[] charList = param.toCharArray();
        boolean valueBegin = false;
        for (int i = 0; i < charList.length; i++) {
            char c = charList[i];
            if (c == '{') {
                if (valueBegin == true) {
                    value = getValue(param.substring(i, param.length()));
                    i = param.indexOf('}', i) + 1;
                    map.put(key, value);
                }
            } else if (c == '=') {
                valueBegin = true;
                key = str;
                str = "";
            } else if (c == ',') {
                valueBegin = false;
                value = str;
                str = "";
                map.put(key, value);
            } else if (c == '}') {
                if (str != "") {
                    value = str;
                }
                map.put(key, value);
                return map;
            } else if (c != ' ') {
                str += c;
            }
        }
        return map;
    }
}

6. person 类

/**
 * @author 
 * @create 2018-05-04 13:43
 * @description person
 * @@since 1.0.0
 */

public class Person {

    String num;
    String name;
    int grade;

    public Person() {

    }

    public Person(String num, String name, int grade) {
        this.num = num;
        this.name = name;
        this.grade = grade;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

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

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

    @Override
    public String toString() {
        return "Person{" +
                "num='" + num + '\'' +
                ", name='" + name + '\'' +
                ", grade=" + grade +
                '}';
    }
}

 

https://www.jianshu.com/p/eafce9689e7d

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值