android中的json解析
‘壹’ Android Json解析
用JSONObject 这个开源库,或者用android的 Gson开源库
JSONObject jsonObj = new JSONObject(json字符串);
JSONArray array = jsonObj.getJSONArray("result");
‘贰’ android json解析三种方式哪种效率最高
用org.json以及谷歌提供gson来解析json数据的方式更好一些。
安卓下通常采用以下几种方式解析json数据:
1、org.json包(已经集成到android.jar中了)
2、google提供的gson库
3、阿里巴巴的fastjson库
4、json-lib
以Google出品的Gson为例,具体步骤为:
1、首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI:
google-gson-1.7.1-release.zip 把gson-1.7.jar 到libs(项目根目录新建一个libs文件夹)中。 可以使用以下两种方法解析JSON数据,通过获取JsonReader对象解析JSON数据。
代码如下:
String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
try{
JsonReader reader = new JsonReader(new StringReader(jsonData));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equals("username")){
System.out.println(reader.nextString());
}
else if(tagName.equals("userId")){
System.out.println(reader.nextString());
}
}
reader.endObject();
}
reader.endArray();
}
catch(Exception e){
e.printStackTrace();
}
2、使用Gson对象获取User对象数据进行相应的操作:
代码如下:
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println(user.getUsername());
System.out.println(user.getUserId());
}
3、如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:
代码如下:
String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println(user.getUsername());
System.out.println(user.getUserId());
‘叁’ Android json解析
关于json解析有很多第三方的jar包可以使用,如gson,也可以使用android自带的工具类org.json包下,这里你可以使用JSONTokener(json解析类 ),例:
// {
// "phone" : ["12345678", "87654321"], // 数组
// "name" : "yuanfei89", // 字符串
// "age" : 100, // 数值
// "address" : { "country" : "china", "province" : "jiangsu" }, // 对象
// "married" : false // 布尔值
// }
private static final String JSON =
"{" +
" \"phone\" : [\"12345678\", \"87654321\"]," +
" \"name\" : \"yuanfei89\"," +
" \"age\" : 100," +
" \"address\" : { \"country\" : \"china\", \"province\" : \"jiangsu\" }," +
" \"married\" : false," +
"}";
try {
JSONTokener jsonParser = new JSONTokener(JSON);
// 此时还未读取任何json文本,直接读取就是一个JSONObject对象。
// 如果此时的读取位置在"name" : 了,那么nextValue就是"yuanfei89"(String)
JSONObject person = (JSONObject) jsonParser.nextValue();
// 接下来的就是JSON对象的操作了
person.getJSONArray("phone");
person.getString("name");
person.getInt("age");
person.getJSONObject("address");
person.getBoolean("married");
} catch (JSONException ex) {
// 异常处理代码
}
可参考:http://www.open-open.com/lib/view/open1326376799874.html
‘肆’ android 手机怎样解析json数据
可以用一些开源的java库,就可以把这些json数据直接变为Java对象及数组了,然后用Java处理起来很方便。
常用的处理json的库有gson和json-lib,你网络一下可以下到,网上也有例子
‘伍’ android JSON文件解析! 求指点。
JSONObjectjsonObj;
jsonObj=newJSONObject(str);//str为返回的json
//解析老师
JSONArrayresult=jsonObj.getJSONArray("老师");
ArrayList<Person>list_laoshi=newArrayList<Person>();
for(inti=0;i<result.length();i++){
JSONObjectjb=(JSONObject)result.opt(i);
Personlaoshi=newPerson();
laoshi.setId(jb.getString("id"));
laoshi.setName(jb.getString("name"));
laoshi.setType(jb.getString("type"));
list_laoshi.add(laoshi);
}
上面代码是把json文件中的老师解析成person对象加入集合,解析家人和同学方法一样,望采纳!
‘陆’ android 用JSON 解析数据接口方法
接口获取下来的数据为
{"status":200,"message":"查询成功","data":{"id":32,"user_id":null,"user_code":null,"user_pass":null,"meeting_id":"1","meeting_pass":null,"config_param_ip":"11.1.1.70","port":"6501","web_config_param_ip":"11.1.1.70","web_port":"6501","unit_code":null,"create_time":null,"update_time":null,"status":0,"userCode":"video1","userPass":"video1","meetingId":"1","meetingPass":"","apiPort":"13000","username":"admin","password":"123456","updateTime":"2021-11-08 17:45:29"}}
使用方法
try {
JSONObject jsonObject = new JSONObject(outstring);
int resultCode = jsonObject.getInt("status");
if (resultCode == 200) {
JSONObject obj = jsonObject.getJSONObject("data");
IP = obj.getString("config_param_ip");
port = obj.getString("web_port");
username = obj.getString("userCode");
password = obj.getString("userPass");
roomID = Integer.parseInt(obj.getString("meetingId"));
roomPassword = obj.getString("password");
} else {
ToastUtils.showShort("查询失败");
}
goVideo();
} catch (Exception e) {
e.printStackTrace();
}
‘柒’ android json解析成map格式
先看json数据
之前使用的是gson解析,把 discount 写成Object格式,但是通过解析之后转成String类型,成为
这种明显没有办法解析成map集合
使用原始的Json解析,一层一层的找到这个对象,转成String类型成为
这种情况下就可以了 之后是的解析方法
第一种方法是
第二种是
这样就可以获取到map集合了
‘捌’ android中解析json数据的org.json包中最重要
android中解析json数据的org.json包中最重要的是jsonarray。
jsonarray主要是解析json数据,因此四最重要的。
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑。
‘玖’ android怎么解析json
你好,我试过了,这样能取到你要的结果:
用的gson-2.2.4.jar包,你应该有吧,没有网络搜下去下个就好了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class MyTest {
public static void main(String[] args) {
String json = "{'resultcode':'200','reason':'ReturnSuccessd!','result':{'data':[{'MCC':'460','MNC':'1','LNG':'120.721423','LAT':'31.29854','O_LNG':'120.72577772352','O_LAT':'31.296529947917','PRECISION':'1101','ADDRESS':'江苏省苏州市吴中区金鸡湖大道368号'}]}}";
JsonParser jsonParser = new JsonParser();
JsonObject jsonObj = jsonParser.parse(json).getAsJsonObject();
JsonObject result = jsonObj.get("result").getAsJsonObject();
JsonArray data = result.get("data").getAsJsonArray();
String O_LNG = data.get(0).getAsJsonObject().get("O_LNG").getAsString();
String O_LAT = data.get(0).getAsJsonObject().get("O_LAT").getAsString();
String ADDRESS = data.get(0).getAsJsonObject().get("ADDRESS").getAsString();
System.out.println(O_LNG);
System.out.println(O_LAT);
System.out.println(ADDRESS);
}
}