![](/img/trans.png)
[英]Convert JSONObject to List<JSONObject> or a String to List<JSONObject>
[英]Convert JsonObject to String
{
"data":
{
"map":
{
"allowNestedValues": true,
"create": "2012-12-11 15:16:13",
"title": "test201212110004",
"transitions": []
}
},
"msg": "success",
"code": "0"
}
上面是一個JsonObject
, data
是一個JsonObject
。
如您所知,如何將其轉換為像"msg":"success"
這樣的String
,我不能直接在data
的值之外添加雙引號。
有一個內置方法可以將 JSONObject 轉換為字符串。 你為什么不使用它:
JSONObject json = new JSONObject();
json.toString();
您可以使用:
JSONObject jsonObject = new JSONObject();
jsonObject.toString();
如果你想獲得一個特定的值,你可以使用:
jsonObject.getString("msg");
或整數值
jsonObject.getInt("codeNum");
您可以使用
JsonObject.getString("msg");
您可以嘗試 Gson 轉換器,以獲得像 json.stringify 這樣的精確轉換
val jsonString:String = jsonObject.toString()
val gson:Gson = GsonBuilder().setPrettyPrinting().create()
val json:JsonElement = gson.fromJson(jsonString,JsonElement.class)
val jsonInString:String= gson.toJson(json)
println(jsonInString)
用這個:
JSONObject json = new JSONObject();
JSONObject.valueToString(json.toString());
在括號外添加雙引號並將{}
內的雙引號替換為\\"
所以: "{\\"data\\":{..... }"
JsonObject 似乎是 JSON-P API。 如果這是真的,我將使用 JsonWritter 將 JsonValue 寫入 StringWriter:
JsonObjectBuilder pokemonBuilder = Json.createObjectBuilder();
pokemonBuilder.add("name", "Pikachu");
pokemonBuilder.add("type", "electric");
pokemonBuilder.add("cp", 827);
pokemonBuilder.add("evolve", true);
JsonObject pokemon = pokemonBuilder.build();
StringWriter sw = new StringWriter(128);
try (JsonWriter jw = Json.createWriter(sw)) {
jw.write(pokemon);
}
String pokemonStr = sw.toString();
JSONObject metadata = (JSONObject) data.get("map"); //for example
String jsonString = metadata.**toJSONString()**;
只需使用 ObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,false);
//here more config opts...
Car car = new Car("yellow", "renault");
objectMapper.writeValue(new File("target/car.json"), car);
String carAsString = objectMapper.writeValueAsString(car);
JSONObject data = (JSONObject) data.get("map");
//for example
String jsonString = data.toJSONString();
This should get all the values from the above JsonObject
System.out.println(jsonObj.get("msg"));
System.out.println(jsonObj.get("code"));
JsonObject obj= jsonObj.get("data").getAsJsonObject().get("map").getAsJsonObject();
System.out.println(obj.get("allowNestedValues"));
System.out.println(obj.get("create"));
System.out.println(obj.get("title"));
System.out.println(obj.get("transitions"));
您可以使用可靠的庫 GSON
private static final Type DATA_TYPE_JSON =
new TypeToken<JSONObject>() {}.getType();
JSONObject orderJSON = new JSONObject();
orderJSON.put("noOfLayers", "2");
orderJSON.put("baseMaterial", "mat");
System.out.println("JSON == "+orderJSON.toString());
String dataAsJson = new Gson().toJson(orderJSON, DATA_TYPE_JSON);
System.out.println("Value of dataAsJson == "+dataAsJson.toString());
String data = new Gson().toJson(dataAsJson);
System.out.println("Value of jsonString == "+data.toString());
var data= {"data": {"map":{"allowNestedValues": true,"create": "2012-12-11 15:16:13","title": "test201212110004","transitions": []}},"msg": "success","code": "0"}
開/關:
Object {data: Object, msg: "success", code: "0"}
使用 JSON.stringify 將整個數據轉換為如下所示的字符串
var stringData = JSON.stringify(data);
開/關:
"{"data":{"map":{"allowNestedValues":true,"create":"2012-12-11 15:16:13","title":"test201212110004","transitions":[]}},"msg":"success","code":"0"}"
使用 JSON.parse 將整個字符串對象轉換為 JSON 對象,如下所示
var orgdata = JSON.parse(stringData);
開/關:
Object {data: Object, msg: "success", code: "0"}
我認為你需要這個:
假設您有這樣的示例
JSON
:
{"ParamOne":"InnerParamOne":"InnerParamOneValue","InnerParamTwo":"InnerParamTwoValue","InnerParamThree":"InnerParamThreeValue","InnerParamFour":"InnerParamFourValue","InnerParamFive":"InnerParamFiveValue"}}
轉換為字符串:
String response = {\"ParamOne\":{\"InnerParamOne\":\"InnerParamOneValue\",\"InnerParamTwo\":\"InnerParamTwoValue\",\"InnerParamThree\":\"InnerParamThreeValue\",\"InnerParamFour\":\"InnerParamFourValue\",\"InnerParamFive\":\"InnerParamFiveValue\"}} ;
只需將“替換為\\”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.