您的位置:首页 > Web前端 > JavaScript

字符串模拟利用gson解析与生成json

2015-08-08 02:06 746 查看
字符串模拟的四种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 jav
4000
a.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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: