JsonObjectを文字列に変換する


83
{
    "data": 
    {
        "map":
        {
            "allowNestedValues": true,
            "create": "2012-12-11 15:16:13",
            "title": "test201212110004",
            "transitions": []
        }
    },
    "msg": "success",
    "code": "0"
}

上記はJsonObjectdataありますJsonObject

ご存知のStringように、それをlikeに変換する方法"msg":"success"は、dataの値の外側に二重引用符を直接追加することはできません。


3
わかりません...言い換えて、(機能していない場合でも)コードスニペットを提供して、何をしようとしているのかを説明していただけますか?
sp00m 2013

4
JsonObject.getString( "msg");
ニコラスタイラー

\"必要に応じて、バックスラッシュ付きの二重引用符を追加できます。あなたの問題/質問を追加してください!
ベンジャミンシュヴァルブ2013

1
それはのインスタンスorg.json.JSONObjectですか?そうである場合は、のtoString()メソッドを呼び出すだけJSONObjectで、のJSONテキストを取得できますJSONObject
スタンレー

3
3年以上後にここに上陸した人々が有用だと感じていることは、尋ねられたこととはまったく関係がないようです。また、この質問は、明確にするための助けをはるかに超えているようにも見えます。元の質問は、@ JayZhangがオブジェクトをフラット化して、データがその内部のjson値の文字列表現になるようにすることでした。誰もそれをする方法に答えなかったようです。数年後にそうすることは、他の人にとって何の価値も持たないでしょう。人々は、jsonを文字列に変換するための検索から着陸し、混乱したQ&Aセッションに夢中になっています。
dlamblin 2017

回答:


159

JSONObjectを文字列に変換するための組み込みメソッドがあります。それを使ってみませんか:

JSONObject json = new JSONObject();

json.toString();

{"data": "{" map ":{" allowNestedValues ":true、" pdId ":168543、" source ":" "}}"、 "msg": "success"、 "code": "0"}
Jay Zhang

応答文字列に\\\スラッシュが含まれています。\ \ \スラッシュを取得せずにjsonオブジェクトを変換する方法
OnkarMusale19年

@Onkarは、文字列サンプルをコードスニペットと一緒に共有します。
Tanuガーグ

このスレッドに似ています。しかし、答えを見つけることができません。stackoverflow.com/q/16563579/8098322
OnkarMusale19年

{"日付": "2013/5/15"}。importorg.json.JSONObjectを使用していますか。それは私にとってはうまく機能しています。正確なサンプルを共有してください。JSONObject json = new JSONObject(); {json.put( "date"、 "2013/5/15");を試してください。} catch(JSONException e){// TODO自動生成されたcatchブロックe.printStackTrace(); } System.out.println(json.toString());
Tanuガーグ

14

次を使用できます。

JSONObject jsonObject = new JSONObject();
jsonObject.toString();

また、特定の値を取得する場合は、次を使用できます。

jsonObject.getString("msg");

または整数値

jsonObject.getInt("codeNum");

getString()またはgetInt()を使用し、msgまたはcodeNumの値がnullの場合、jsonObject.optString( "msg")およびjsonObject.optInt( "codeNum")を使用することをお勧めします。これにより、エラーが発生して停止します。プログラム。私が言及した方法との唯一の違いは、値がnullの場合でもエラーをスローしないことです。
ユーザー1


4

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)

1

括弧の外に二重引用符を追加して、内部の二重引用符置き換える{}とし\"

そう: "{\"data\":{..... }"


0
JSONObject metadata = (JSONObject) data.get("map"); //for example
String jsonString = metadata.**toJSONString()**;

JSONObject json =(JSONObject)JSONValue.parse(jsonData); JSONObjectデータ=(JSONObject)json.get( "data"); jsonデータを解析した後、後でデータオブジェクトにアクセスして、データをjson文字列に「マップ」する必要があります。
Hakan Anlamaz 2017

-2
     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"));

これは質問に答えません。
ralfe 2018

-2

信頼できるライブラリ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());

-5
 var data= {"data": {"map":{"allowNestedValues": true,"create": "2012-12-11 15:16:13","title": "test201212110004","transitions": []}},"msg": "success","code": "0"}

o / p:

Object {data: Object, msg: "success", code: "0"}

JSON.stringifyを使用して、データ全体を以下のような文字列に変換します

var stringData = JSON.stringify(data);

o / p:

"{"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);

o / p:

Object {data: Object, msg: "success", code: "0"}

-7

私はあなたがこれを必要とすると思います:

次の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\"}} ;

「」を「」に置き換えるだけです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.