com.aliyun.openservices.shade.com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, line 1, column 2


報錯原因:你放的是一個非List的對象 卻想取一個List對象出來

 

 

 

package test;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

public class VarTest {

    public static void main(String[] args) {

        LiuJieTestObj obj = new LiuJieTestObj();
        obj.setId(111L);
        Date date1 = new Date(2019, 7, 23);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        df.format(date1);
        obj.setTestDate(date1);
        // 錯誤示范1 報錯:Exception in thread "main" com.alibaba.fastjson.JSONException: expect '[', but {, pos 1, line1,column 2
        String str1 = JSON.toJSONString(obj);// 放進去的不是List
        System.out.println("str1:"+str1);//str1:{"id":111,"testDate":61524633600000}
        List<LiuJieTestObj> objList1 = JSON.parseArray(str1, LiuJieTestObj.class);// 取一個List

        // 錯誤示范2 報錯:Exception in thread "main" com.alibaba.fastjson.JSONException: expect '[', but {, pos 1, line1,column 2
        String str2 = JSONArray.toJSONString(obj);// 放進去的是非List的對象
        System.out.println("str2:"+str2);//str2:{"id":111,"testDate":61524633600000}
        List<LiuJieTestObj> objList2 = JSON.parseArray(str2, LiuJieTestObj.class);// 取一個List

        // 正確示范3
        List<LiuJieTestObj> list = new ArrayList<>();
        list.add(obj);
        String str3 = JSON.toJSONString(list);// 放進去的是List
        System.out.println("str3:"+str3);//str3:[{"id":111,"testDate":61524633600000}]
        List<LiuJieTestObj> objList3 = JSON.parseArray(str3, LiuJieTestObj.class);// 取一個List

    }
}

 

package test;

import java.util.Date;

public class LiuJieTestObj {
    private Long id ;
    private Date testDate;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Date getTestDate() {
        return testDate;
    }
    public void setTestDate(Date testDate) {
        this.testDate = testDate;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM