問題タブ [json-lib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - リテラル値 'null' を持つ Not-Null 文字列が正しく処理されない - JSON-lib のバグ
ユーザーが送信した文字列値 'null' が '"null"' としてデータベースに格納されているという最近の問題に遭遇しました。基本的に、文字列の最初と最後に二重引用符が追加されています。
調査の結果、JSON-lib が「null」文字列値を正しく処理していないように見えることが明らかになりました。これは、以下の試験方法により示される。
基本的に、ブラウザが ["null", "aValue"] をサーバーに送信すると、JSON-lib はそれを ["\"null\"", "aValue"] に変更します。また、サーバー側からは、JSONArray を使用して ["null", "b"] のような JSON 形式の文字列を構築することはできません。JSON-lib は、これら 2 つの基本的なシナリオを適切に処理していないようです。
メーリング リストに電子メールを送信し、サイトに記載されている連絡先の電子メールを送信しましたが、まだ応答がありません。誰かが以前にこの問題について投稿したようです
http://sourceforge.net/p/json-lib/discussion/587134/thread/faf83e9a/
しかし、それに対する返事もありません。
この問題に対する提案/修正はありますか?
json-lib の最新バージョン、つまり 2.4 を使用しています。
アップデート
json lib net.sf.json.util.JSONUtils.mayBeJSON メソッドのソース コードを見ると、少し奇妙です。
「null」のリテラル文字列値は JSON と見なされるようです??
java - json-lib を使用してそのような json 形式を作成するにはどうすればよいですか?
このコードを使用して json 文字列を出力します。
にitemsとtotalPageを入れmap
て、itemsには他map
にもArrayList
..
結果は次のようになります。ルート上の配列です
しかし、私は結果のフォーマットがそのようなものであることを望みます:
どのようにできるのか??
json - JSON-lib (net.sf.json) による文字列値のデシリアライズ
ネストされたオブジェクト内の JSON 文字列データの逆シリアル化に関するJSON-Lib の問題を発見しました。Groovy の次のコードは問題を示しています。Groovy コンソールでテストできます。
attributes
上記の例では、JSONの両方に同じ文字列値があります"{test:1}"
。JSONSerializer は最初のものをString
値に逆シリアル化し、2番目のものを (多分) に 逆シリアル化しますJSONObject
。そのオブジェクトのクラスがnullを返すため、わかりません。
異なる文字列値 (JSON データのように見えない、たとえば"blah"
) の場合は機能します。
この動作を変更するにはどうすればよいですか?
アップデート
ここでJSON-Libのドキュメントに基づいて文字列値を引用しようとしましたが(そこを指摘してくれた@GemKに感謝します)、同じ結果になりました。文字列値の引用は、ネストされたオブジェクトでは機能しません:-(
java - 原因: java.lang.ClassNotFoundException: net.sf.json.xml.XMLSerializer が com.myproject.core で見つかりません [35154]
json-lib を使用して、xml 構造を json 形式に変換します。私の依存関係は次のようになります。
次の行で:
コンパイラは愚かなエラーをスローします:
このエラーが発生する理由は何ですか?
json - JSONオブジェクトがJSPで文字列として出力されるのはなぜですか?
私のサーブレットでは、次の値で JSONObject が作成されます。
を使用して JSP ページにその値を出力しようとすると、JSON オブジェクトが String として出力されます。として印刷されます。
文字列ではなく JSON 形式で出力するにはどうすればよいですか?
サーブレットの場合:
JSP の場合:
json - POJO属性の順序を維持しながら、net.sf.json JsonSerializerを使用してPOJOをJSONに変換する必要があります
すべての JSON 操作に net.sf.json API を使用しています。JSONSerializer.toJSON(POJO, JsonConfig) を使用して POJO を JSON に変換しようとしています。結果の JSON に、POJO で指定された順序と同じ順序で POJO 属性を持たせたいと考えています。しかし、私が見ているのは、シリアル化の結果が POJO プロパティのアルファベット順になっていることです。
私は実際に {"name":"John","age":50} が欲しい
私はこのハックを試しました、
もっと良い方法はありますか?
プロジェクト全体で net.sf.json が使用されているため、より優れた機能を持つ Jackson に移動したくありません。