文章目录
一、其他类型的数据转换成 Json 字符串(原生方法)
- 一、其他类型的数据转换成 Json 字符串(原生方法)
- 二、使用 Google 的 Gson 库将各种类型的数据转换成 Json 字符串
今天用AS写了这么一个功能,就是怎么把 Json 数据转换成 Json 字符串 ,怎么将 Json 字符串存到本地文件中,首先第一个问题:怎么把其他类型的数据转换成 Json 字符串
其它类型的数据有很多,比如 String、Object、Number、Boolean、Bean、List、Array、Map、Set 等,我们把这些封装到一个工具类中即可,上代码,嗨嗨!
package com.example.baseobservable.json;
import com.googlecode.openbeans.IntrospectionException;
import com.googlecode.openbeans.Introspector;
import com.googlecode.openbeans.PropertyDescriptor;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class JsonUtils {
public String stringToJson(String s) {
if (s == null) {
return nullToJson();
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i = '\u0000' && ch 0) {
for (Object obj : array) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
public String mapToJson(Map map) {
StringBuilder json = new StringBuilder();
json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(objectToJson(key));
json.append(":");
json.append(objectToJson(map.get(key)));
json.append(",");
}
json.setCharAt(json.length() - 1, '}');
} else {
json.append("}");
}
return json.toString();
}
public String setToJson(Set set) {
StringBuilder json = new StringBuilder();
json.append("[");
if (set != null && set.size() > 0) {
for (Object obj : set) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
}
这个工具类可能会报错在99行,是因为没有 openbeans-1.0.jar 包的原因 这个包 csdn 有下载的,没有积分下载的私聊我
在一种我们讲到了原生的方法,但是 Gson 会让我们使用起来更加方便
1.首先导入依赖:
implementation 'com.google.code.gson:gson:2.8.0'
或者
com.google.code.gson
gson
2.8.0
2.各种数据类型转换 json:toJson
Gson gson = new Gson();
String json = gson.toJson(obj); // obj 代表各种数据类型
3.json 转 bean:fromJson
Gson gson = new Gson();
String json = "{\"username\":\"张三\",\"pwd\":\"123456\"}";
Book book = gson.fromJson(json, User.class);
4.json 转复杂的bean,比如List : fromJson
// 将 json 转成复杂类型的 bean,需要使用 TypeToken
Gson gson = new Gson();
String json = "[{\"username\":\"张三\",\"pwd\":\"123456\"},{\"username\":\"李四\",\"pwd\":\"678910\"}]";
// 将 json 转成 List
List list = gson.fromJson(json, new TypeToken() {}.getType());
~还有阿里巴巴的 Fastjson,这里就不一一赘述了