android從assets中獲取json資料
阿新 • • 發佈:2018-12-31
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);
}
}