json Gson

 


package
com.example.volleylearn; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.test.AndroidTestCase; import android.util.Log; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; /* 1. 将json格式的字符串{}转换为Java对象, 使用原生API 2. 将json格式的字符串{}转换为Java对象, 使用GSON 3. 将json格式的字符串[]转换为Java对象的List, 使用原生API 4. 将json格式的字符串[]转换为Java对象的List, 使用GSON 5. 将Java对象转换为json字符串{}, 使用GSON 6. 将Java对象的List转换为json字符串[], 使用GSON */ public class JsonTest extends AndroidTestCase{ /* * 1. 将json格式的字符串{}转换为Java对象, 使用原生API */ public void testJsonToObject() throws JSONException { String jsonString = "{\"id\":2, \"name\":\"大虾\", \"price\":12.3,\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"}"; //将json字符串封装为JSONObject对象 JSONObject jsonObject = new JSONObject(jsonString); //从对象中根据key获得对应的value int id = jsonObject.getInt("id"); String name = jsonObject.getString("name"); double price = jsonObject.getDouble("price"); String imagePath = jsonObject.getString("imagePath"); //封装ShopInfo对象 ShopInfo shopInfo = new ShopInfo(id, name, price, imagePath); Log.e("TAG", shopInfo.toString()); } /* * 1. 将json格式的字符串{}转换为Java对象, 使用GSON */ public void testJsonToObject2() { String jsonString = "{\"id\":3, \"name\":\"大虾\", \"price\":12.3,\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"}"; ShopInfo shopInfo = new Gson().fromJson(jsonString, ShopInfo.class); Log.e("TAG", shopInfo.toString()); } /* * 3. 将json格式的字符串[]转换为Java对象的List, 使用原生API */ public void testJsonToList() throws JSONException { String jsonString = "[{\"id\":3, \"name\":\"大虾\", \"price\":12.3,\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"}," + "{\"id\":5, \"name\":\"大虾2\", \"price\":128.3,\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f2.jpg\"}]"; List<ShopInfo> list = new ArrayList<ShopInfo>(); //1. 将json字符串包装JSONArray对象 JSONArray jsonArray = new JSONArray(jsonString); //2. 遍历JSONArray对象全部元素(JSONObject), 并将每一个元素封装为shopInfo, 并添加到List for(int i=0;i<jsonArray.length();i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); //从对象中根据key获得对应的value int id = jsonObject.getInt("id"); String name = jsonObject.getString("name"); double price = jsonObject.getDouble("price"); String imagePath = jsonObject.getString("imagePath"); //封装ShopInfo对象 ShopInfo shopInfo = new ShopInfo(id, name, price, imagePath); list.add(shopInfo); } Log.e("TAG", list.toString()); } /* * 4. 将json格式的字符串[]转换为Java对象的List, 使用GSON */ public void testJsonToList2() throws JSONException { String jsonString = "[{\"id\":4, \"name\":\"大虾\", \"price\":12.3,\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"}," + "{\"id\":6, \"name\":\"大虾2\", \"price\":128.3,\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f2.jpg\"}]"; List<ShopInfo> list = new Gson().fromJson(jsonString, new TypeToken<List<ShopInfo>>(){}.getType()); Log.e("TAG", list.toString()); } /* 5. 将Java对象转换为json字符串{}, 使用GSON */ public void testObjectToJson() { ShopInfo info = new ShopInfo(3, "KK", 1000, "http://www.sina.com"); String json = new Gson().toJson(info); Log.e("TAG", json); } /* 6. 将Java对象的List转换为json字符串[], 使用GSON */ public void testListToJson() { List<ShopInfo> list = new ArrayList<ShopInfo>(); list.add(new ShopInfo(3, "KK", 1000, "http://www.sina.com")); list.add(new ShopInfo(4, "KK2", 2000, "http://www.sina.com222")); String json = new Gson().toJson(list); Log.e("TAG", json); } public void testJsonToMap() { String jsonString = "{\"my name\":\"大虾\", \"1\":12}"; Map<String, Object> map = new Gson().fromJson(jsonString, new TypeToken<Map<String, Object>>(){}.getType()); Log.e("TAG", map.toString()); } }

 

FastJson  
  // (4)将Java对象的List转换为json字符串[]
    private void javaToJsonArrayByFastJson() {

        // 1 建立一个Java集合
        List<ShopInfo> shops = new ArrayList<>();

        ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
        ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia");

        shops.add(baoyu);
        shops.add(longxia);

        // 2 生成JSON数据
        String json = JSON.toJSONString(shops);

    }

    // (3)将Java对象转换为json字符串{}
    private void javaToJsonObjectByFastJson() {

        // 1 建立一个Java对象
        ShopInfo shopInfo = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");

        // 2 生成JSON数据
        String json = JSON.toJSONString(shopInfo);
    }


    // (2)将json格式的字符串[]转换为Java对象的List
    private void jsonToJavaListByFastJson() {

        // 1 获取或建立json数据
        String json = "[\n" +
                "    {\n" +
                "        \"id\": 1,\n" +
                "        \"imagePath\": \"http://192.168.10.165:8080/f1.jpg\",\n" +
                "        \"name\": \"大虾1\",\n" +
                "        \"price\": 12.3\n" +
                "    },\n" +
                "    {\n" +
                "        \"id\": 2,\n" +
                "        \"imagePath\": \"http://192.168.10.165:8080/f2.jpg\",\n" +
                "        \"name\": \"大虾2\",\n" +
                "        \"price\": 12.5\n" +
                "    }\n" +
                "]";

       // 2 解析JSON数据
        List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);

    }

    // (1)将json格式的字符串{}转换为Java对象
    private void jsonToJavaObjectByFastJson() {

        // 1 获取或建立json数据
        String json = "{\n" +
                "\t\"id\":2, \"name\":\"大虾\", \n" +
                "\t\"price\":12.3, \n" +
                "\t\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"\n" +
                "}\n";

        // 2 解析JSON数据
        ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
    }
}
相关文章
相关标签/搜索