mCarrYoung

认识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数据了,大家可以试试

相关文章: