字符串模拟的四种json数据:
简单的json:
{
"type": "9003",
"seq": "1",
"uri": "10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg",
"path": "/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg"
}
数组json:
[
{
"type": "9002",
"seq": "1",
"uri": "10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg",
"path": "/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg"
},
{
"type": "9003",
"seq": "1",
"uri": "10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg",
"path": "/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg"
}
]
Mapjson1:
{
"uris": [
{
"type": "9002",
"seq": "1",
"uri": "10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg",
"path": "/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg"
},
{
"type": "9003",
"seq": "1",
"uri": "10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg",
"path": "/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg"
}
]
}
Mapjson2:
[
[
"uris",
{
"type": "9002",
"seq": "1",
"uri": "10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg",
"path": "/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg"
}
]
]
======================================================================================================
package com.example.tablayout;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.example.bean.ImageInfoBean;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class JsonActivity extends Activity {
private TextView tv;
String jsonData = "{"
+ "\"type\": \"9002\","
+ "\"seq\": \"1\","
+ "\"uri\": \"10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\","
+ "\"path\": \"/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\""
+ "}";
String jsonData2 = "[" +
"{\"type\": \"9002\"," +
"\"seq\": \"1\"," +
"\"uri\": \"10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"," +
"\"path\": \"/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"" +
"}," +
"{\"type\": \"9003\"," +
"\"seq\": \"1\"," +
"\"uri\": \"10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"," +
"\"path\": \"/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"" +
"}]";
String jsonData3 = "{" +
"\"uris\": " +
"[" +
"{" +
"\"type\": \"9002\"," +
"\"seq\": \"1\"," +
"\"uri\": \"10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"," +
"\"path\": \"/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"" +
"}," +
"{" +
"\"type\": \"9003\"," +
"\"seq\": \"1\"," +
"\"uri\": \"10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"," +
"\"path\": \"/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"" +
"}]}";
String jsonData4 = "[[" +
"\"uris\", " +
"{" +
"\"type\": \"9002\"," +
"\"seq\": \"1\"," +
"\"uri\": \"10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"," +
"\"path\": \"/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg\"" +
"}]]";
Gson gson;
String str;
String json = "{\"total\":100,\"rows\":[{\"key\":\"key1\",\"value\":\"value1\"},{\"key\":\"key2\",\"value\":\"value2\"}]}";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_json);
tv = (TextView) findViewById(R.id.json_tv);
init();
}
private ImageInfoBean iiBean1;
private ImageInfoBean iiBean2;
private List<ImageInfoBean> list;
private Map<String, Object> map;
private Map<String, ImageInfoBean> map2;
private void init(){
iiBean1 = new ImageInfoBean();
iiBean1.setType(9002);
iiBean1.setSeq(1);
iiBean1.setUri("10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg");
iiBean1.setPath("/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg");
iiBean2 = new ImageInfoBean();
iiBean2.setType(9003);
iiBean2.setSeq(1);
iiBean2.setUri("10000/1/1/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg");
iiBean2.setPath("/opt/store/10000/1/0/1/d89eaff9-b61c-4615-a7d1-da670ce1c585.jpg");
list = new ArrayList<ImageInfoBean>();
list.add(iiBean2);
list.add(iiBean1);
map = new LinkedHashMap<String, Object>();
map.put("urls", list);
//...
map2 = new LinkedHashMap<String, ImageInfoBean>();
map2.put("uris", iiBean1);
//...
}
//普通对象json
private String s1 = null;
//带泛型的json
private String s2 = null;
//Map类型的json
private String s3 = null;
private String s4 = null;
@SuppressLint("ShowToast")
public void click(View v) {
gson = new Gson();
switch (v.getId()) {
case R.id.bean_btn1:
//简单Bean转Json
s1 = gson.toJson(iiBean1);
tv.setTextColor(Color.RED);
tv.setText(s1+"\n");
break;
case R.id.json_btn2:
if(s1 != null){
Toast.makeText(JsonActivity.this, "字符串生成的json", 0).show();
ImageInfoBean user = gson.fromJson(s1, ImageInfoBean.class);
tv.setTextColor(Color.BLUE);
tv.setText(user.toString()+"\n");
break;
}else{
Toast.makeText(JsonActivity.this, "自己拼接的json", 0).show();
ImageInfoBean user1 = gson.fromJson(jsonData, ImageInfoBean.class);
tv.setTextColor(Color.BLUE);
tv.setText(user1.toString()+"\n");
break;
}
case R.id.bean_btn3:
//带泛型的list转化为json
s2 = gson.toJson(list);
tv.setTextColor(Color.YELLOW);
tv.setText(s2+"\n");
break;
case R.id.json_btn4:
if(s2 != null){
Toast.makeText(JsonActivity.this, "字符串生成的json", 0).show();
List<ImageInfoBean> retList = gson.fromJson(s2,
new TypeToken<List<ImageInfoBean>>() {
}.getType());
for (ImageInfoBean stu : retList) {
tv.setTextColor(Color.GREEN);
tv.append(stu.toString()+"\n");
}
break;
}else{
Toast.makeText(JsonActivity.this, "自己拼接的json", 0).show();
List<ImageInfoBean> retList = gson.fromJson(jsonData2,
new TypeToken<List<ImageInfoBean>>() {
}.getType());
for (ImageInfoBean stu : retList) {
tv.setTextColor(Color.GREEN);
tv.append(stu.toString()+"\n");
}
break;
}
case R.id.bean_btn5:
s3 = gson.toJson(map);
tv.setTextColor(Color.CYAN);
tv.setText(s3.toString()+"\n");
break;
case R.id.json_btn6:
if(s3 != null){
Toast.makeText(JsonActivity.this, "字符串生成的json", 0).show();
Map<String, Object> retMap = gson.fromJson(s3,
new TypeToken<Map<String, List<ImageInfoBean>>>() {
}.getType());
for (String key : retMap.keySet()) {
tv.setTextColor(Color.GREEN);
tv.append(key.toString()+"\n");
if (key.equals("urls")) {
@SuppressWarnings("unchecked")
List<ImageInfoBean> stuList = (List<ImageInfoBean>) retMap.get(key);
for(ImageInfoBean iib :stuList){
tv.append(iib.toString()+"\n");
}
} /*else if (key.equals("....")) {
List<...> tchrList = (List<...>) retMap.get(key);
System.out.println(tchrList);
} */
}
break;
}else{
Toast.makeText(JsonActivity.this, "自己拼接的json", 0).show();
Map<String, Object> retMap = gson.fromJson(jsonData3,
new TypeToken<Map<String, List<ImageInfoBean>>>() {
}.getType());
for (String key : retMap.keySet()) {
tv.setTextColor(Color.GREEN);
tv.append(key.toString()+"\n");
if (key.equals("uris")) {
@SuppressWarnings("unchecked")
List<ImageInfoBean> stuList = (List<ImageInfoBean>) retMap.get(key);
for(ImageInfoBean iib :stuList){
tv.append(iib.toString()+"\n");
}
} /*else if (key.equals("....")) {
List<...> tchrList = (List<...>) retMap.get(key);
System.out.println(tchrList);
} */
}
break;
}
case R.id.bean_btn7:
s4 = gson.toJson(map2);
tv.setTextColor(Color.CYAN);
tv.setText(s4.toString()+"\n");
break;
case R.id.json_btn8:
if(s4 != null){
Toast.makeText(JsonActivity.this, "字符串生成的json", 0).show();
Map<String, ImageInfoBean> retMap = gson.fromJson(s4,
new TypeToken<Map<String, ImageInfoBean>>() {
}.getType());
for (String key : retMap.keySet()) {
tv.setTextColor(Color.GREEN);
tv.append(key.toString()+"\n");
if (key.equals("uris")) {
ImageInfoBean stuList = (ImageInfoBean) retMap.get(key);
tv.append(stuList.toString()+"\n");
} /*else if (key.equals("....")) {
List<...> tchrList = (List<...>) retMap.get(key);
System.out.println(tchrList);
} */
}
break;
}else{
Toast.makeText(JsonActivity.this, "自己拼接的json", 0).show();
Map<String, ImageInfoBean> retMap = gson.fromJson(jsonData4,
new TypeToken<Map<String, ImageInfoBean>>() {
}.getType());
for (String key : retMap.keySet()) {
tv.setTextColor(Color.GREEN);
tv.append(key.toString()+"\n");
if (key.equals("uris")) {
ImageInfoBean stuList = (ImageInfoBean) retMap.get(key);
tv.append(stuList.toString()+"\n");
} /*else if (key.equals("....")) {
List<...> tchrList = (List<...>) retMap.get(key);
System.out.println(tchrList);
} */
}
break;
}
default:
break;
}
}
}
==========================================================================================
package com.example.bean;
public class ImageInfoBean {
public int type;
public int seq;
public String uri;
public String path;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getSeq() {
return seq;
}
public void setSeq(int seq) {
this.seq = seq;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String toString(){
return "urls [type=" + type + ", seq="
+ seq + ", uri="
+ uri + ", path=" + path
+ "]";
}
}
gson包:
http://yunpan.cn/cdLinbcT5xcy6 (提取码:9d7c)