問題タブ [json-simple]
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 - Java での JSON リストとマップの操作
JSON 型の文字列をデータベースに保存/取得するプロジェクトに取り組んでいます。
すべて正常に動作します。つまり、保存と更新は type に対しては安全ですString,Number and Boolean
が、 に対してList and Map
は、データがデータベースを行き来するときに List と Map を操作する安全な方法を確認したいと思います。特に、リストの項目が大きくなった場合、つまり「友達」や「フォロワー」のリストなど、何千ものアイテム
List
また、JSONまたはMap
Java で処理する際のデータ破損の可能性についても懸念しています。
JSON.Simple
すべて (すべてのアイテム) をメモリにロードせずに、ライブラリを使用してリストとマップを更新する安全な方法は何ですか?
たとえば、データベースに保存されている JSON リスト文字列に 1 つの項目を挿入するだけです。
java - 一重引用符を使用した Java 1.4 String.replaceAll の問題
JSON に入力する必要があるデータベースからの文字列値を取得しましたが、値には一重引用符と二重引用符を含めることができます。簡単に聞こえますよね?どうやら Java 1.4.2 にはありません。なぜ 1.4.2 にしなければならないのかを説明しないでください。私はこれを別の開発者から継承しましたが、私の制御が及ばない要因により、このプロジェクトをまだ更新できません。:)
だから、私はこれらすべてを試しました(そして結果を見るためだけに他の多くのものを試しました):
私が欲しいのはsample user\'s string
、何が間違っているのですか?残念ながら 1.4.2 には String.replace(String,String) 関数がありません。
編集: json-simple
JSON ライブラリを使用しており、結果の JSON 文字列で上記のコマンドの出力を見ていました。JSON が出力される前に値を確認するために追加のデバッグ情報を追加しました。上記のコマンドは実際に機能しているように見えますが、json-simple
ライブラリはエスケープ文字を削除しています。
だから、私が見ているのは:
そのため、ライブラリは期待どおりに機能していないようです。これを使用したことのある人json-simple
は、これに対する回避策を知っていますか?
java - JSON-Simple JSONArrayでnullpointer例外が発生するのはなぜですか?
私はここでこのチュートリアルに従っています、そして私のJSONオブジェクトは、私がこの種のフォーマットを持っていることを除いて、十分に同じです:
これが私の関連コードです:
次に、プログラムがオフになり、キーなどから値を取得します。または、NullPointerException
Eclipseから取得します。どうしてこれなの?
.json
ファイルをにアンパッケージjsonObject
し、「user」キーをJSONObjectとしてuser
アンパッケージしてから、「SomeList」キーをと呼ばれるJSONArrayとしてアンパッケージする必要がありlist
ます。そうする場合を除いて、存在しないJSONArrayの1つval1
またはその一部に入れようとしている必要があり、の深淵を指しているだけです。この間違いに値するために私は何をしましたか?val2
null
プログラムを修正するにはどうすればよいですか?
json - なぜJSON-SimpleパーサーはJavaでコロンを期待しないのですか?
JSON-Simpleを使用してTwitterからJSONブロックを解析しています。私は例外に遭遇しました:
Exception in thread "main" Unexpected token COLON(:) at position 27
...stack
trace...
JavaScriptがJSONを解析する方法に特殊性があるため(JSONJ-Pはそれをパディングして受け取る必要があると思います)、SOで似たようなものを見てきましたが、私はJSにいないので、ここではそうではありません!
これが私のJSON(サニタイズ)です:
{"in_reply_to_status_id_str":null,"id_str":"23475129874512857","text":"RT @SanitizedPersonName: SomeTextIveSanitized @SanatizedTwitterHandle SomeMoreText http:\/\/t.co\/sanitized SomeText (MoreText) \/ Text", "restOfTheJson":"Is not Special"}
2つのことが私を襲います。
- バッファリングされたリーダーで読み取ったばかりの行を出力しますが
{
、ブロックの最初にはaがなく、最後にはありません。これは深刻な問題のようです。 - 27位で読んだ文字はコロンではなく
r
したがって、バッファリングされたリーダーが私のものを食べている{
か、パーサーが正しく解析していません。どちらが問題であるかを確認して修正するにはどうすればよいですか?
nb while(buff.read()!=-1)
(行の終わりをチェックするために)印刷および解析行があり、「正規表現」(if(!line.contains(DELETE_REGEX))
(無効なjsonをチェックするため)をチェックするifステートメントが原因である可能性がありますか?コードは次のとおりです。
私はいくつかの取るに足らないものを逃しました。
java - JSON-Simpleでnull値を処理するには?
JSON-Simple を使用して、JSON でツイートを取り込みます。メモリ内で、ユーザー オブジェクトを独自の JSONObject クラスに分割します。
次に、JSON-Simple を使用してツイートとユーザー オブジェクトからさまざまなフィールドを取り除きます。やっていた
しかし、時折、ユーザーの場所が に設定されていることが判明しましたnull
。
だから今、私がストリップしているフィールドがnullであるかどうかを確認し、それを ""に設定しています:
しかし、デバッグ モードで Eclipse をステップ実行したところ、場所が null に設定されている人が見つかり、関連付けられている JSON オブジェクト フィールドを取り除いて JSON オブジェクト フィールドに"location"
入れている部分をまたがりました"user Location"
。そして、私はNPEを取得します。
私の三項ステートメントはそれを説明していませんか? それがnullに等しいかどうかをチェックしますが(ポインターが同じであることを確認できる「nullオブジェクト」が1つしかない)、そうである(condtion?
trueである)場合は、put("location","")
いいえと評価する必要がありますか?
どこが間違っていますか?この null 値を処理するにはどうすればよいですか?
java - Json-Simple を使用して JSON から Map に解析し、キーの順序を保持する方法
Json-Simple lib を使用して構成ファイルを作成するために Json-Simple を使用していますが、json 文字列をマップに変換する際に問題が発生しています。
デバッグ parse メソッドがマップであるオブジェクトを返すことがわかりました! しかし、LinkedMap に直接キャストしようとすると、ClassCastException が発生します。
java - JSONObject を List または JSONArray に変換するための簡単なコードは?
さまざまなスレッドを読み、同様の問題を見つけましたが、特定の問題の解決策を見つけるのにかなり失敗しています.
戻り値:
orr のデータ = {"470":[{"locationId":2,"quantity":1,"productId":1007}],"471":[{"locationId":2,"quantity":1," productId":1008}]}orr のタイプ = クラス org.json.simple.JSONObject
このデータを配列/リスト/キー 470,471 を使用してデータを取得できるものに取得しようとしています。
任意の提案やポインタは、多くのおかげで高く評価されています...
明確にするために:
これは私が求めているものですが、この番号がどうなるかわからないため、 orr.get("471") を実行できないことは明らかです。
編集: どうやら私は自分の質問に 8 時間答えることはできません:
友人の助けといくつかのいじりのおかげで、私は解決策を見つけました。それは最も雄弁ではないと確信していますが、それはまさに私が求めていたものです:
助けと提案をしてくれてありがとう。
google-app-engine - AppEngineを使用したJSONドキュメントの保存
Objectifyを永続レイヤーとして使用してJSONドキュメントをAppEngineデータストアに保存しようとしています。String
ドキュメント全体をフィールドとして挿入するのではなく、ドキュメント値をクエリできるようにするために、MapEntity
次のようなを作成しました。
最終的に「展開」されると、JSONドキュメント内のすべてのKey-ValueをMapで表すことができるようになります。
例:
マップフィールドをデータストアに保存します。
私のparse()
方法を使用する場合:
JSON.Simpleライブラリを使用してJSONドキュメントを解析してから、再帰的な解析を実行します。
私のアプリは次のように動作します:
私が遭遇する問題は次のとおりです。
- 「。」は使えません。マップキーフィールドにドットがあるので、「-」を使用する必要があります
- また、JSONドキュメントを保存する私のアプローチはあまり効率的ではありません
json-simple - エラー:パッケージorg.json.simpleが存在しません
FourSqure.comからの戻り値をJSONで解析しようとしています。Googleでjson-simple-1.1.1.jarをダウンロードし、libフォルダー「C:\ Java \ jdk1.7.0 \ lib」に配置します。Javaファイルは「C:\ Java\jdk1」にあります。 .7.0 \bin"。
そしてそれをコンパイルすると、エラーが表示されます:
GetLocation.java:22:エラー:パッケージorg.json.simpleが存在しませんimport org.json.simple.JSONArray; ^
そして私はこのように実行しようとします: "C:\ Java \ jdk1.7.0 \ bin \ Getlocations>javac-classpath。;$C:\ Java \ jdk1.7.0 \ lib \json-simple-1.1.1.jarGetLocation。 java "
しかし、C:\ Java \ jdk1.7.0 \ bin \ Getlocations>javacGetLocation.javaを実行すると
それでもこのエラーが表示されます:
json-simple-1.1.1.jarファイルのクラスパスを設定して機能させるにはどうすればよいですか?
java - json ファイルから値を出力する
次のコードを使用してファイルから JSON データを取得しています。現在、JSON を 1 つの文字列で取得できました。それを配列に解析したい。json ファイルは次のようになります。
次のコードを使用してデータを取得していますが、1 つの文字列で取得し、データの一部を印刷したい
これが出力です
ここで、entry.getValue() は、配列の 1 つの連結された文字列を返します。whileは 1 回だけ実行されます...しかし、キー値を取得するためにループしたいと思います。どうすればいいですか?たとえば、 22歳のアレックスという名前を印刷したい場合、どうすればよいですか?
注:ファイルを変更できるため、キーがわかりません(現在はその名前ですが、firstNameおよびその他のフィールドにすることができます。そのための一般的なソリューションが必要です)。
それを行うことができる別のパーサーを使用する方法があれば、私は開いています。