タグ付けされた質問 「gson」

Gsonは、JSONとの間でJavaオブジェクトをシリアライズおよびデシリアライズするためのGoogleのオープンソースライブラリです。

1
Gsonが「<」と「>」をUnicodeエスケープシーケンスに変換することを回避できますか?
GsonがJSON出力で文字列 "&lt;"をUnicodeエスケープシーケンスに変換することに気づきました。これをどうにかして回避できますか、または「&lt;」や「&gt;」などの文字は常にJSONでエスケープする必要がありますか? 印刷するこの例を考えてみましょう{"s":"\u003c"}。単純に欲しい {"s":"&lt;"}。 public static void main(String[] args) { Gson gson = new GsonBuilder().create(); System.out.println(gson.toJson(new Foo())); } static class Foo { String s = "&lt;"; } コンテキスト:私が作成しているJSONは、HTMLページやJavaScriptとは関係ありません。特定の構造化された情報を別のソフトウェア(デバイスに埋め込まれ、Cで書かれた)に渡すために使用されます。
127 java  json  gson 

11
「BEGIN_OBJECTが必要ですが、1行1列目はSTRINGでした」
私はこの方法を持っています: public static Object parseStringToObject(String json) { String Object = json; Gson gson = new Gson(); Object objects = gson.fromJson(object, Object.class); parseConfigFromObjectToString(object); return objects; } そして、私はJSONを解析したいと思います: public static void addObject(String IP, Object addObject) { try { String json = sendPostRequest("http://" + IP + ":3000/config/add_Object", ConfigJSONParser.parseConfigFromObjectToString(addObject)); addObject = ConfigJSONParser.parseStringToObject(json); } catch …
126 java  json  parsing  gson 

4
JavaでGSONまたは別のJSONライブラリを使用してリストを逆シリアル化する方法は?
私はシリアライズすることができますList&lt;Video&gt;GAE上の私のサーブレットで、私はそれをデシリアライズすることはできません。何が悪いのですか? これは、GAEでの私のクラスのビデオで、シリアル化されています。 package legiontube; import java.util.Date; import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Video { @PrimaryKey private String id; @Persistent private String titulo; @Persistent private String descricao; @Persistent private Date date; public Video(){}; public Video(String id, String titulo, String descricao, Date date) …
121 java  json  gson 

7
GSONでJSONを解析する際の列挙型の使用
これは、以前にここで質問した前の質問に関連しています Gsonを使用したJSON解析 同じJSONを解析しようとしていますが、クラスを少し変更しました。 { "lower": 20, "upper": 40, "delimiter": " ", "scope": ["${title}"] } 私のクラスは次のようになります: public class TruncateElement { private int lower; private int upper; private String delimiter; private List&lt;AttributeScope&gt; scope; // getters and setters } public enum AttributeScope { TITLE("${title}"), DESCRIPTION("${description}"), private String scope; AttributeScope(String scope) { this.scope = …
119 java  json  gson 

5
Gsonを使用してJSON配列をjava.util.Listに解析する
私がしているJsonObjectという名前の"mapping"次の内容: { "client": "127.0.0.1", "servers": [ "8.8.8.8", "8.8.4.4", "156.154.70.1", "156.154.71.1" ] } 私は配列"servers"を取得できることを知っています: mapping.get("servers").getAsJsonArray() そして今、それを解析JsonArrayしてjava.util.List... これを行う最も簡単な方法は何ですか?
119 java  json  parsing  gson 

12
レトロフィットを使用してGSONでネストされたJSONオブジェクトを取得する
私はAndroidアプリからAPIを使用しており、すべてのJSON応答は次のようになります。 { 'status': 'OK', 'reason': 'Everything was fine', 'content': { &lt; some data here &gt; } 問題は、すべてのPOJOにstatus、reasonフィールドがあり、フィールド内にcontent私が欲しい本物のPOJOがあることです。 常にcontentフィールドを抽出するGsonのカスタムコンバーターを作成する方法はありますか?そのため、レトロフィットは適切なPOJOを返しますか?
111 java  android  json  gson  retrofit 

4
GSONを使用してJSON配列を解析する
次のようなJSONファイルがあります。 [ { "number": "3", "title": "hello_world", }, { "number": "2", "title": "hello_world", } ] 以前、ファイルにルート要素があったとき、私は次のように使用しました Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class); コードですがWrapper、ルート要素が配列であるため、クラスのコーディング方法を考えることができません。 私は使ってみました: Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class); と: public class Wrapper{ String number; String title; } しかし、運はありませんでした。この方法を使用して他にどのようにこれを読むことができますか? PS私はこれを使って動作するようにしています: JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine); String title = ((JsonObject)entries.get(0)).get("title"); ただし、両方の方法で(可能な場合)方法を知りたいと思います。
110 java  arrays  json  gson 



4
JSONスタイルのプロパティ名をGSONでJava CamelCase名に変換する
GSONを使用して、取得したJSONデータをJavaオブジェクトに変換しています。それは私のすべてのテストでかなりうまくいきます。問題は、実際のオブジェクトにis_onlineのような名前のプロパティがいくつかあることです。GSONはそれらが完全に等しい名前が付けられている場合にのみそれらをマップします。GSONが名前をJavaのキャメルケースisOnlineに変換するようにするとよいでしょう。 これは、JSONデータの作成中に可能であるようです。キャメルケースは、JSONでアンダースコアで区切られた単語に変換されます。しかし、私はこれを逆に指定する方法を見つけることができません。
106 java  json  gson  camelcasing 

10
JsonReader.setLenient(true)を使用して、1行1列1パスで不正な形式のJSONを受け入れます$
このエラーは何ですか?どうすれば修正できますか?アプリは実行中ですが、データを読み込めません。そしてこれは私のエラーです:JsonReader.setLenient(true)を使用して、1行1列1パスで不正な形式のJSONを受け入れます$ これは私の断片です: public class news extends Fragment { private RecyclerView recyclerView; private ArrayList&lt;Deatails&gt; data; private DataAdapter adapter; private View myFragmentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { myFragmentView = inflater.inflate(R.layout.news, container, false); initViews(); return myFragmentView; } private void initViews() { recyclerView = (RecyclerView) myFragmentView.findViewById(R.id.card_recycler_view); RecyclerView.LayoutManager layoutManager = …
105 android  json  gson  retrofit 

4
フィールドごとに複数のGSON @SerializedName?
Gsonで複数のJSONフィールドを単一のJavaオブジェクトメンバー変数にマッピングする方法はありますか? Javaクラスがあるとしましょう... public class MyClass { String id; String name; } この1つのクラスを2つの異なるサービスで使用したいと思います。ただし、これらの2つのサービスは、データを返す方法が異なります... { "id": 2341, "person": "Bob" } ...と... { "id": 5382, "user": "Mary" } ...それぞれ。 JSON文字列の"person"と"user"フィールドの両方をnameJavaオブジェクトのフィールドにマップする方法はありますか? (注:JSON文字列からJavaオブジェクトに変換する必要があるだけです-その逆はありません。)
104 java  json  gson 

3
GSONを使用したJsonのKotlinデータクラス
私はこのようなJava POJOクラスを持っています: class Topic { @SerializedName("id") long id; @SerializedName("name") String name; } そして、私はこのようなKotlinデータクラスを持っています data class Topic(val id: Long, val name: String) Java変数の注釈などのjson key変数にを提供するにはどうすればよいですか?kotlin data class@SerializedName
104 java  json  gson  kotlin  data-class 

9
gsonによる多態性
Gsonでjson文字列をデシリアライズする際に問題が発生しました。コマンドの配列を受け取ります。コマンドには、start、stop、その他のタイプのコマンドがあります。当然私はポリモーフィズムを持っています、そして開始/停止コマンドはコマンドから継承します。 gsonを使用して正しいコマンドオブジェクトにシリアル化するにはどうすればよいですか? 基本型のみを取得しているようです。つまり、宣言された型であり、実行時の型はありません。

3
TypeAdapterを使用したオブジェクト内の(多数の)1つの変数のGsonカスタムセラライザ
カスタムTypeAdapterを使用する多くの簡単な例を見てきました。最も役に立ちましたClass TypeAdapter&lt;T&gt;。しかし、それでも私の質問にはまだ答えていません。 オブジェクトの単一のフィールドのシリアル化をカスタマイズし、デフォルトのGsonメカニズムが残りを処理するようにします。 説明のために、このクラス定義を、シリアル化するオブジェクトのクラスとして使用できます。最初の2つのクラスメンバーと基本クラスのすべての公開されたメンバーをGsonにシリアル化させ、以下に示す3番目と最後のクラスメンバーのカスタムシリアル化を行いたいと思います。 public class MyClass extends SomeClass { @Expose private HashMap&lt;String, MyObject1&gt; lists; @Expose private HashMap&lt;String, MyObject2&gt; sources; private LinkedHashMap&lt;String, SomeClass&gt; customSerializeThis; [snip] }

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