认识json
{
“cat”:”it”,
“lanuaes”:{
{“id”:1;”ide”:”Eclipse”,”name”:”Java”},
{“id”:2,”ide”:”xcode”,”name”:”swift”},
{“id”:3,”ide”:”visual”,”name”:”c#”}
}
}
1、使用JSON生成JSON类
//JSONArray 用来解析或生成数组[]
//JSONObject 用来解析或生成类{}
//生成一个类json串
JSONObject json = new JSONObject();
json.put(key,value);
2、生成json数组
JSONObject array1 = new JSONObject();
array.put(name,value);
JSONObject array2 = new JSONObject();
array.put(name,value);
JSONArray array = new JSONArray();
array.put(array1);
array.put(array2);
//解析json
String jsonclass = json.toString();
JSONObject jsonObjectClass = new JSONObject(jsonclass);
//判断是否存在
if(jsonObjectClass.has(“name”)){
String str = jsonObjectClass.get(“name”);
Log.e(“TT”,”解析到的类:”+str);
}else{
Log.e(“TT”,”没有找到字段”);
}
//解析数组
String array = array.toString();
JSONArray jsonarray = new JSONArray(array);
for(int I = 0 ;jsonarray.length();i++){
JSONObject jsonobject = jsonArray.getJSONObject(i);
if(jsonobject.has("name")){
string str = jsonobject.get("name");
}
}
3、GSon解析
1、创建一个JsonBean的Java类
public class JsonBean {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "JsonBean{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2、在MainActivity中写一个叫getjsonData的方法
public void getjsonData() {
Gson gson = new Gson(); //实例化Gson
JsonBean jsonBean = gson.fromJson(json,JsonBean.class); //讲json转化成Java对象
Log.d("TT",""+jsonBean.getName());
}
这样就可以解析出来了 下面是全部的代码
3、MainActivity全部代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.google.gson.Gson;
public class MainActivity extends AppCompatActivity {
private String json ="{\"name\":\"小明\",\"age\":\"23\"}";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getjsonData();
}
public void getjsonData() {
Gson gson = new Gson(); //实例化Gson
JsonBean jsonBean = gson.fromJson(json,JsonBean.class); //讲json转化成Java对象
Log.d("TT",""+jsonBean.getName());
}
}
4、使用Gson生成json
同样创建JsonBean类
public class JsonBean {
private String name;
private int age;
public JsonBean(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "JsonBean{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
MainActivity类
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.google.gson.Gson;
public class MainActivity extends AppCompatActivity {
private String json ="{\"name\":\"小明\",\"age\":\"23\"}";
Gson gson = new Gson(); //实例化Gson
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
formjsonData();
}
private void formjsonData(){
JsonBean jsonBean = new JsonBean("Carr",20);
String str = gson.toJson(jsonBean);
Log.d("TT",str);
}
}
这样打印出来的就是生成的json数据了,大家可以试试