天天看點

JSONObject把String類型轉換為JSON格式,GSON把String類型轉換為JSON格式JSONObject把String類型轉換為JSON格式

JSONObject把String類型轉換為JSON格式

1.String轉換為json

一共有三種方法:

第一種:string直接轉換為json

String json = "{\"2\":\"efg\",\"1\":\"abc\"}";
  JSONObject json_test = JSONObject.fromObject(json);
           

将string的雙引号轉義即可,适用于字元串較短的

第二種:将string轉為list後轉為json

List<String> list = new ArrayList<String>();  
list.add("username");  list.add("age");  list.add("sex");  
JSONArray array = new JSONArray();  array.add(list);
           

可以使用list的add函數将需要的字元串拼接即可,但是這個隻能使用JSONArray

第三種:将string轉為map後轉為json

Map<String, String> map = new HashMap<String, String>();
map.put("1", "abc");
map.put("2", "efg");
JSONArray array_test = new JSONArray();
array_test.add(map);
 JSONObject jsonObject = JSONObject.fromObject(map);
           

這裡使用map就可以将字元串轉化為JSONArray或者JSONObject都可以,但是這裡的鍵不能使用int型

2.GSON把字元串轉換為JSON

一共有四種方法:

第一種:将Json字元串轉換成對象:

public static Object JSONToObject(String json,Class beanClass) {  
        Gson gson = new Gson();  
        Object res = gson.fromJson(json, beanClass);  
        return res;  
    }  
           

注:轉換後的對象使用前進行強轉:

例如bean bean1 = (bean)FormatUtil.JSONToObject(json, bean.class);

第二種:将Json字元串轉換成JsonObject對象:

第三種:将JsonArray類型的Json字元串解析成對象方法

Gson gson = new Gson();   
JsonParser parser = new JsonParser();   
JsonArray Jarray = parser.parse(jstring).getAsJsonArray();   

ArrayList<channelSearchEnum> lcs = new ArrayList<channelSearchEnum>();   

for(JsonElement obj : Jarray ){   
    channelSearchEnum cse = gson.fromJson( obj , channelSearchEnum.class);   
    lcs.add(cse);   
} 
           

或者

String json = "[{\"username\":\"test\"},{\"username\":\"test2\"}]";   
System.out.println(new JsonParser().parse(json).getAsJsonArray().get().getAsJsonObject().get("username").getAsString());
           

第四種:擷取JsonObject中指定key值對應的JsonArray對象:

String json= "{\"pids\":[\"\",\"\",\"\"]}";  
System.out.println(new JsonParser().parse(json).getAsJsonObject().getAsJsonArray("pids").get().getAsString());  
           

有更好的方法希望一起讨論