JSON语法 首先看JSON的语法和结构,这样我们才知道怎么去解析它。jsON语法时javascript对象表示语法的子集。 JSON的值可以是: 数字(整数或者浮点数) 字符
JSON语法
首先看JSON的语法和结构,这样我们才知道怎么去解析它。jsON语法时javascript对象表示语法的子集。
JSON的值可以是:
数字(整数或者浮点数)
字符串(在双引号内)
逻辑值(true 或 false)
数组(使用方括号[]包围)
对象( 使用花括号{}包围)
null
JSON中有且只有两种结构:对象和数组。
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,“javascript”,“vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSON格式,XML格式的数据在处理时相对比较繁琐,并且Android为我们提供了两个解析JSON对象的类:JSONObject与JSONArray这两个对象可以很好的满足我们的需求,JSONArray对象可以以数组的形式将数据返回到手机,JSONObject对象则可以以对象的形式将数据为我们封装好返回,手机接收都这两种数据后,通过解析,可以很方便的使用,大大的方便了我们的开发学习。
当然在使用JSONObject进行数据解析时,有两种方式,一种通过键值对的形式一个一个的取数据;另一种就是将JSONObject解析为具体的对象,然后通过对象的get、set方法进行数据的读取与操作,对于第一种方式,相信刚接触JSON解析的小童鞋都是这样干的,相对第一种方式,第二种方式更加的简单方便,下面我们就一起学习一下如何实现将JSONObject对象转化为具体的对象吧。
因为今天我们要探讨的是关于JSONObject的解析,所以我就通过一个简单的对象创建--对象封装--对象解析--对象操作,为大家介绍一下如何进行JSONObject向具体对象的转化。
首先我们的对象类(user):
public class User {
private String id;
private String name;
private String from;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
@Override
public String toString() {
return "User [id=" + id + ",name=" + name + ",from=" + from +"]";
}
}
这里我重写了对象的toString方法,这里一定要注意返回参数的格式:类名+'['+参数名+'='+参数+.....+']'
下面就是我们的对象创建与解析了:
1、JSONObject对象解析类:
//JSONObject解析类
public class JsonParseToObject {
public Object AllJsonParseToObject(String json, String packageAddress) {
Object parseObject = null;
try {
parseObject = JSON.parseObject(json, Class.forName(packageAddress));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return parseObject;
}
}
2、JSON对象的创建与解析:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView text = (TextView) findViewById(R.id.hw);
//将我们的对象属性封装都JSONObject中
JSONObject jo = new JSONObject();
jo.put("id", "16");
jo.put("name", "小了");
jo.put("from", "河南");
String str = jo.toString();
Toast.makeText(this, str, Toast.LENGTH_LONG).show();
//对JSONObject对象进行解析
User u = (User) new JsonParseToObject().AllJsonParseToObject(jo.toString(), "com.example.jsontoobject.User");
//判断JSONObject对象解析是否正确
if(u != null){
text.setText(jo.toString()+"\nid:"+u.getId()+";name:"+u.getName()+";from:"+u.getFrom());//进行对象操作
}else{
text.setText("User == null");
}
}
}
布局文件很简单就是一个文本框,用来显示解析后的数据。
好了到这里我们关于JSONObject解析的知识就为大家介绍完毕,没用过这种方式的小伙伴可以尝试一下,还是挺方便的,如果你有更好的方式,还望交流学习。
以上内容是小编给大家分享的Android JSON解析的全部叙述,希望可以帮助大家。
您可能感兴趣的文章:Android中使用Gson解析JSON数据的两种方法Android 解析JSON对象及实例说明android 解析json数据格式的方法Android App数据格式Json解析方法和常见问题Android M(6.x)使用OkHttp包解析和发送JSON请求的教程Android中gson、jsonobject解析JSON的方法详解Android解析json数组对象的方法及Apply和数组的三个技巧Android利用Gson解析嵌套多层的Json的简单方法Android json解析及简单例子探究Android系统中解析JSON数据的方式Android编程之json解析实例详解Android编程简单解析JSON格式数据的方法示例
--结束END--
本文标题: 深入浅析Android JSON解析
本文链接: https://lsjlt.com/news/26089.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0