android从assets中获取json数据

这里写图片描述
1.首先是导入json文件

[
  {
    "actual": "103",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "102",
    "historyId": 449366,
    "previous": "103",
    "revised": "",
    "timestamp": 1456213500
  },
  {
    "actual": "102",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "103",
    "historyId": 449367,
    "previous": "103",
    "revised": "101",
    "timestamp": 1458805500
  },
  {
    "actual": "105",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "101",
    "historyId": 449368,
    "previous": "102",
    "revised": "104",
    "timestamp": 1461221100
  },
  {
    "actual": "104",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "104",
    "historyId": 449369,
    "previous": "105",
    "revised": "",
    "timestamp": 1464072300
  },
  {
    "actual": "102",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "103",
    "historyId": 449370,
    "previous": "104",
    "revised": "",
    "timestamp": 1466664300
  },
  {
    "actual": "103",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "101",
    "historyId": 449371,
    "previous": "102",
    "revised": "",
    "timestamp": 1469083500
  },
  {
    "actual": "101",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "103",
    "historyId": 449372,
    "previous": "103",
    "revised": "",
    "timestamp": 1472107500
  },
  {
    "actual": "103",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "101",
    "historyId": 449373,
    "previous": "101",
    "revised": "",
    "timestamp": 1474526700
  },
  {
    "actual": "103",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "103",
    "historyId": 449374,
    "previous": "103",
    "revised": "102",
    "timestamp": 1477377900
  },
  {
    "actual": "102",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "102",
    "historyId": 449375,
    "previous": "103",
    "revised": "103",
    "timestamp": 1479973500
  },
  {
    "actual": "106",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "103",
    "historyId": 449376,
    "previous": "102",
    "revised": "",
    "timestamp": 1481874300
  },
  {
    "actual": "106",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "106",
    "historyId": 449377,
    "previous": "106",
    "revised": "",
    "timestamp": 1485330300
  },
  {
    "actual": "107",
    "createTime": "Apr 10, 2017 12:04:14 AM",
    "economicId": 518,
    "forecast": "106",
    "historyId": 449378,
    "previous": "106",
    "revised": "",
    "timestamp": 1487835900
  },
  {
    "actual": "105",
    "createTime": "Aug 8, 2017 12:35:07 AM",
    "economicId": 518,
    "forecast": "107",
    "historyId": 692633,
    "previous": "107",
    "revised": "104",
    "timestamp": 1490255100
  },
  {
    "actual": "108",
    "createTime": "Aug 8, 2017 12:35:07 AM",
    "economicId": 518,
    "forecast": "104",
    "historyId": 692634,
    "previous": "105",
    "revised": "104",
    "timestamp": 1493102700
  },
  {
    "actual": "109",
    "createTime": "Aug 8, 2017 12:35:07 AM",
    "economicId": 518,
    "forecast": "108",
    "historyId": 692635,
    "previous": "109",
    "revised": "",
    "timestamp": 1495521900
  },
  {
    "actual": "109",
    "createTime": "Aug 8, 2017 12:35:07 AM",
    "economicId": 518,
    "forecast": "109",
    "historyId": 692636,
    "previous": "109",
    "revised": "108",
    "timestamp": 1498113900
  },
  {
    "actual": "109",
    "createTime": "Aug 8, 2017 12:35:07 AM",
    "economicId": 518,
    "forecast": "108",
    "historyId": 692637,
    "previous": "109",
    "revised": "108",
    "timestamp": 1500965100
  },
  {
    "actual": "111",
    "createTime": "Aug 24, 2017 6:14:38 PM",
    "economicId": 518,
    "forecast": "108",
    "historyId": 696718,
    "previous": "108",
    "revised": "109",
    "timestamp": 1503557100
  },
  {
    "actual": "110",
    "createTime": "Oct 9, 2017 9:07:19 AM",
    "economicId": 518,
    "forecast": "",
    "historyId": 698671,
    "previous": "111",
    "revised": "",
    "timestamp": 1506408300
  }
]

2.工具类

public class SimulateNetAPI {
    /**
     * 获取去最原始的数据信息
     *
     * @return json data
     */
    public static String getOriginalFundData(Context context) {
        InputStream input = null;
        try {
            input = context.getAssets().open("fund.json");
            String json = convertStreamToString(input);
            return json;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * input 流转换为字符串
     *
     * @param is
     * @return
     */
    private static String convertStreamToString(java.io.InputStream is) {
        String s = null;
        try {
            Scanner scanner = new Scanner(is, "UTF-8").useDelimiter("\\A");
            if (scanner.hasNext()) {
                s = scanner.next();
            }
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return s;
    }
}

3.activity中使用

String originalFundData = SimulateNetAPI.getOriginalFundData(MainActivity.this);

//如果要把json转为实体需结合Gson
//此处为数组
OriginFundMode[] originFunModes;
                try {
                    originFunModes = GsonUtils.fromJson2Object(originalFundData, OriginFundMode[].class);
                } catch (Exception e) {
                    e.printStackTrace();
                    return;
                }
                List<OriginFundMode> OriginFundModeList = Arrays.asList(originFunModes);

GsonUtils

public class GsonUtils {

    private static Gson gson = null;
    private static Gson prettyGson = null;

    static {
        gson = new GsonBuilder()
                .setDateFormat("yyyy-MM-dd HH:mm:ss").create();
        prettyGson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss")
                .setPrettyPrinting()
                .create();
    }

    /**
     * 小写下划线的格式解析JSON字符串到对象
     * <p>例如 is_success->isSuccess</p>
     *
     * @param json
     * @param classOfT
     * @return
     */
    public static <T> T fromJsonUnderScoreStyle(String json, Class<T> classOfT) {
        return gson.fromJson(json, classOfT);
    }

    /**
     * JSON字符串转为Map<String,String>
     *
     * @param json
     * @return
     */
    @SuppressWarnings("all")
    public static <T> T fronJson2Map(String json) {
        return gson.fromJson(json, new TypeToken<Map<String, String>>() {
        }.getType());
    }

    /**
     * 小写下划线的格式将对象转换成JSON字符串
     *
     * @param src
     * @return
     */
    public static String toJson(Object src) {
        return gson.toJson(src);
    }

    public static String toPrettyString(Object src) {
        return prettyGson.toJson(src);
    }

    public static <T> T fromJson2Object(String src, Class<T> t) {
        return gson.fromJson(src, t);
    }

    public static <T> T fromJson2Object(String src, Type typeOfT) {
        return gson.fromJson(src, typeOfT);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值