A JSONObject text must begin with '{' at 1 [character 2 line 1],將ListString轉json(存入redis),json轉回ListString


今天在寫項目時,從redis存取數據時報了json格式與List的轉換異常:

org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {

下面總結一下將ListString轉json存入redis,以及從redis取出json轉回ListString:

一、List<String> 轉json,這里用hutool工具類

List<String> list = new ArrayList<>();

假如存入數據:

  list.add("a");

  list.add("b");

String json = JSONUtil.toJsonStr(list);

此時的json格式為 ["a","b"],最外層會有一個[ ],里面每個元素都會有" ";

而如果每一個元素是對象的話,則是這樣:

[

  {

    "icon": "/types/ms.png",

    "updateTime": 1640229871000,

    "sort": 1,

    "createTime": 1640175467000,

    "name": "美食",

    "id": 1

  },

  ......

]

  

2.String 轉成 List<String>

1.利用hutool工具包里的方法(最簡單的)
List<String> list = JSONUtil.toList(JSONUtil.parseArray(json),ShopType.class);

ps:其中json是從redis取出的JSON轉為String的變量,ShopType.class是要轉的對象的Class

例如:

 //將redis緩存取到的字符串轉化為數組,再將數組轉為ShopType類型的list
 List<ShopType> shopTypeList = JSONUtil.toList(JSONUtil.parseArray(shopTypeStr),ShopType.class); 

其他方法:

寫一個工具類,去掉前后的[ ],然后循環去掉每一個字符串的",添加到list里

 


免責聲明!

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



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