JSON详解?
程序员文章站
2022-03-10 07:57:54
...
JSON有两种表示结构,对象和数组。
对象: 对象结构以”{“大括号开始,”}”大括号结束。中间部分由0个或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。
{key1:value1,key2:value2,…}
数组: 数组结构以”[“开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
[{key1:value1,key2:value2},{key3:value3,key4:value4}]
解析JSON:如果数据庞大,可以用第三方解析工具gson(google)、fastjson(阿里)。gson要灵活一些(推荐)。
例子gson:
原项目是从网上抓取最新的恶意软件的信息存入SQLiteDatabase数据库
Activity:>>
HttpUtils httpUtils = new HttpUtils();
String url="http://192.168.84.2:8080/antivirus.json";
httpUtils.send(HttpRequest.HttpMethod.GET, url, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
String result=responseInfo.result;
if (!"".equals(result)){
try {
//gson用法核心
Gson gson = new Gson();
Antivitus fromJson = gson.fromJson(result, Antivitus.class);
boolean antivirus = AntivirusDao.addAntivirus(fromJson.md5, fromJson.desc);
if (antivirus){
ToastUtil.showToast(SplashActivity.this,"病毒更新成功");
}else{
ToastUtil.showToast(SplashActivity.this,"病毒更新失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(com.lidroid.xutils.exception.HttpException e, String s) {
}
}
Antivitus:>>
public class Antivitus {
public String md5;
public String desc;
}
AntivirusDao.addAntivirus()>>
public static boolean addAntivirus(String md5,String desc){
SQLiteDatabase sqLiteDatabase = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
ContentValues values=new ContentValues();
values.put("md5",md5);
values.put("desc",desc);
values.put("type","6");
values.put("name","Android.Troj.AdWooboo.a");
long datable = sqLiteDatabase.insert("datable", null, values);
if (datable==-1){
return false;
}else{
return true;
}
}
上一篇: mybatis总结2
下一篇: HTML知识点小总结