0. 前言
在数据库中存储JSON字符串,后端代码中需要频繁读写JSON字符串,需要熟练应用各种转化。
1. 依赖包
使用fastjson。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
2. json与字符串之间的转换
2.1 字符串转换为json对象
String str1 = "{\"accuracyFormula\":\"\",\"reactTimeFormula\":\"\",\"gameTimesFormula\":\"\",\"answerTimeFormula\":\"\",\"weight\":\"\",\"correct\":{\"type\":2,\"number\":50},\"topic\":\"\"}";
JSONObject comment = JSONObject.parseObject(str1);
2.2 字符串转换为json数组
String str2 = "[{\"col\":3,\"rightPlus\":2,\"rightPicture\":3,\"score\":3,\"isRandom\":1,\"gameTime\":30,\"wrongPlus\":5,\"topicName\":\"\",\"splashTimeout\":3,\"guide\":\"\",\"totalPicture\":15}]";
JSONArray resourceConfigs = JSON.parseArray(str2);
2.3 json数组或对象转字符串
String str3 = comment.toString();
String str4 = resourceConfigs .toString();
3. JSON在java中的一些操作
3.1 根据key从JSONobject中取数据
这里只给出一个实例,还有getDouble等方法可以直接取出相应的数据类型。
String reactTimeFormula= comment.getString("reactTimeFormula");
3.2 根据key从JSONObject中取JSONobject或者JSONArray
使用getJSONObject或者getJSONArray方法。
3.3 根据索引从JSONArray取东西
JSONObject resourceConfig = resourceConfigs.getJSONObject(index);