Android 解析 Json串

1.通过主Activity的Button按钮进行解析

public class MainActivity extends Activity {

    private Button button=null;
    private String jsonData="[{\"name\":\"小张\",\"age\":25,\"sex\":\"男\"},{\"name\":\"小李子\",\"age\":41,\"sex\":\"女\"}," +
            "{\"name\":\"倩倩\",\"age\":15,\"sex\":\"女\"}]";
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button=(Button) super.findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
            {
                new JsonUtils(jsonData);
            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

2.JosnUtils类用来解析json数据的业务类

public class JsonUtils 
{

    @SuppressLint("NewApi") public JsonUtils(String jsonData) 
    {
        try 
        {
            /**
             * 要想解析JSON数据之前先创建一个JsonReader对象,
             * 因为JsonReader对象需要一个reader参数所以要把字符串转化成StringReader对象作为参数
             */
            JsonReader jsonReader=new JsonReader(new StringReader(jsonData));
            //开始读取json数据
            jsonReader.beginArray();
            //循环读取json中的数据,一直到读取数据结束
            while(jsonReader.hasNext())
            {
                //开始读取json对象
                jsonReader.beginObject();
                //循环读取json对象中的数据,一直到读取数据结束
                while(jsonReader.hasNext())
                {
                    //jsonReader.nextName()读取json对象的名称
                    //jsonReader.nextString()读取json对象对应的值;如果是整形对象使用jsonReader.nextInt()方法
                    if(jsonReader.nextName().equals("name"))
                    {
                        System.out.print("姓名:"+jsonReader.nextString());
                    }
                    if(jsonReader.nextName().equals("age"))
                    {
                        System.out.print("  年龄:"+jsonReader.nextInt());
                    }
                    if(jsonReader.nextName().equals("sex"))
                    {
                        System.out.print("  性别:"+jsonReader.nextString());
                    }
                }
                System.out.println();
                //结束json对象数据的解析
                jsonReader.endObject();
            }
            //结束json数据的解析
            jsonReader.endArray();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
    
}

3.在运行程序之前要把google的gson-xxx.jar的jar包导入到类库中,下载地址: https://code.google.com/p/google-gson/downloads/list

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值