您当前的位置: 首页 >  json

梁同学与Android

暂无认证

  • 6浏览

    0关注

    603博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android --- 怎么把其他类型的数据转换成 Json 字符串

梁同学与Android 发布时间:2022-03-24 15:12:19 ,浏览量:6

文章目录
  • 一、其他类型的数据转换成 Json 字符串(原生方法)
  • 二、使用 Google 的 Gson 库将各种类型的数据转换成 Json 字符串

一、其他类型的数据转换成 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 有下载的,没有积分下载的私聊我

二、使用 Google 的 Gson 库将各种类型的数据转换成 Json 字符串

在一种我们讲到了原生的方法,但是 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,这里就不一一赘述了

关注
打赏
1656853971
查看更多评论
立即登录/注册

微信扫码登录

0.0554s