zoukankan      html  css  js  c++  java
  • Android解析JSON

    android框架已经为我们集成了解析json的包
    先一个简单的例子,json直接写在string中
    Java代码
    String staticObject = "{\"firstname\":\"Steve\",\"lastname\":\"Jobs\",\"cellphones\":\"0\"}";  
    void buildObject()  
    {  
        try  
        {  
            obj = new JSONObject(staticObject);  
            String x = obj.get("firstname").toString() + " " + obj.get("lastname").toString() + " has " + obj.getInt("cellphones") + " Android phones.";  
            setStatus(x);  
        }  
        catch (JSONException je)  
        {  
            setStatus("Error occured " + je.getMessage());  
        }  
    }  
    void setStatus(String x)  
    {  
        TextView tv = (TextView) findViewById(R.id.txtStatus);  
        tv.setText(x);  
    }  
    String staticObject = "{\"firstname\":\"Steve\",\"lastname\":\"Jobs\",\"cellphones\":\"0\"}";  void buildObject() {  try  {   obj = new JSONObject(staticObject);   String x = obj.get("firstname").toString() + " " + obj.get("lastname").toString() + " has " + obj.getInt("cellphones") + " Android phones.";   setStatus(x);  }  catch (JSONException je)  {   setStatus("Error occured " + je.getMessage());  } }  void setStatus(String x) {  TextView tv = (TextView) findViewById(R.id.txtStatus);  tv.setText(x); }
    将json写在文件中,并放在raw目录下
    json形式为
    Java代码
    {  
    "firstname":"Richard",  
    "lastname":"Stearns",  
    "almamater":"Cornell University",  
    "occupation":"President, World Vision",  
    "interview":  
        {  
            "source" : "http://blog.guykawasaki.com/2007/05/ten_or_so_quest.html#ixzz0giEIX0zY",  
            "questions":  
                [  
                {  
                "Question": "How much money does World Vision raise every year?",  
                "Answer": "Worldwide, World Vision raises about $2 billion annually; the U.S. office, which I head up, raises about half of the total."  
                },  
                {  
                "Question": "Is this the 80/20 rule where twenty percent of the people send in eighty percent of the money or are donations more spread out?",  
                "Answer": "World Vision's strength is that we are supported by hundreds of thousands of faithful people who give us about a dollar a day by sponsoring children. Our \"major donors\" account for less than five percent of our total income. Also, for a non-profit, we have quite a diversified portfolio of revenue. Just over forty percent is cash from private citizens; thirty percent is government grants in food and cash; and about thirty percent are products donated from corporation--what we call \"gifts-in-kind.\""  
                }  
                ]  
        }  
    }  
    { "firstname":"Richard", "lastname":"Stearns", "almamater":"Cornell University", "occupation":"President, World Vision", "interview":  {   "source" : "http://blog.guykawasaki.com/2007/05/ten_or_so_quest.html#ixzz0giEIX0zY",   "questions":    [    {    "Question": "How much money does World Vision raise every year?",    "Answer": "Worldwide, World Vision raises about $2 billion annually; the U.S. office, which I head up, raises about half of the total."    },    {    "Question": "Is this the 80/20 rule where twenty percent of the people send in eighty percent of the money or are donations more spread out?",    "Answer": "World Vision's strength is that we are supported by hundreds of thousands of faithful people who give us about a dollar a day by sponsoring children. Our \"major donors\" account for less than five percent of our total income. Also, for a non-profit, we have quite a diversified portfolio of revenue. Just over forty percent is cash from private citizens; thirty percent is government grants in food and cash; and about thirty percent are products donated from corporation--what we call \"gifts-in-kind.\""    }    ]  } }
    其中解析代码为
    Java代码
    void buildObjectFromFile()  
    {  
        try  
        {  
            String x = "";  
            InputStream is = this.getResources().openRawResource(R.raw.interview);  
            byte [] buffer = new byte[is.available()];  
            while (is.read(buffer) != -1);  
            String json = new String(buffer);  
            obj = new JSONObject(json);  
            x = obj.getString("firstname") + " " + obj.getString("lastname") + "n";  
            x += obj.getString("occupation") + "n";  
            JSONObject interview =  obj.getJSONObject("interview");  
            x += "Interview source:" + interview.getString("source")  + "n";  
            JSONArray questions = interview.getJSONArray("questions");  
            x += "Number of questions: " + questions.length()  + "nn";  
            int i;  
            for (i=0;i<questions.length();i++)  
            {  
                JSONObject qa = questions.getJSONObject(i);  
                x += "------------n";  
                x += "Q" + (i+1) + ". " + qa.getString("Question") + "nn";  
                x += "A" + (i+1) + ". " + qa.getString("Answer") + "n";  
            }  
            setStatus(x);  
        }  
        catch (Exception je)  
        {  
            setStatus("Error w/file: " + je.getMessage());  
        }  

  • 相关阅读:
    ElasticSearch的高级复杂查询:非聚合查询和聚合查询
    js上传文件前判断获取文件大小并且加以判断
    如何使用IE9浏览器自带开发人员工具捕获网页请求
    目标的滚动条样式设置
    springmvc配置数据源方式
    SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误
    解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
    敏捷宣言(十七)
    敏捷宣言(十六)
    敏捷宣言(十五)
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2120028.html
Copyright © 2011-2022 走看看