問題タブ [jsonnode]
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 - JsonNode.fields() hasNext() は false を返し、 JsonNode.iterator() は true を返します
1 つのフィールドを除いて値が null の場合、JsonNode から値を削除する必要があります。JsonNode.Iterator() を使用して JsonNode の反復処理を削除できますが、値のみが得られます。キーであるフィールドsubstitutionItemsを確認する必要があり、フィールドがnullであっても削除しないでください。
JsonNode.fields() を使用してキーと値のペアを取得しようとしており、フィールドがsubstitutionItemsであるかどうかを確認して、削除しないか、削除してください。
しかしそうすると、 fields.hasNext()は false を返します。
どうすれば望ましい結果を得ることができますか?
java - jsonNode オブジェクトのすべてのサブノードを反復するにはどうすればよいでしょうか?
JsonNode オブジェクトのすべてのノードを反復処理したい. JsonNode オブジェクトの下から価格の詳細を取得したい. 価格の詳細を取得する方法を教えてください
応答
java - Assertj が Jackson JsonNode で動作しない
assertj と Jackson の JsonNode を組み合わせて使用しています。これまでのところ、私は使用してAssertions.assertThat(objectNode0).isEqualTo(objectNode1);
おり、すべて正常に動作しています。
ここで、比較でいくつかのフィールドを無視する必要がありusingRecursiveComparison
ます. これを克服する方法はありますか?ここに私のサンプルコードがあります:
}
java - Jackson ObjectMapper を使用して文字配列をバイトに変換する際の問題
String.valueof(char array).getBytes("UTF-8") および new ObjectMapper.writeValueAsBytes(char array) を使用して Character 配列をバイトに変換しているときに、異なるバイト配列のセットを取得しています
例:
出力:
このサイトのバイト エンコーディング チャートを確認したところ、 ObjectMapper.writeValueAsBytes() は \ と n を 2 つの異なる文字と見なし、先頭と末尾に二重引用符文字を追加していると考えました。この動作により、このバイトを JsonNode に変換しているときに、Json の操作に使用できない TextNode を取得しています。
String.getBytes() は \n を 1 文字と見なし、先頭と末尾に二重引用符を追加しません。このバイトを JsonNode に変換しているときに、Json の操作に使用できる ObjectNode を取得しています
バイトを JsonNode に変換するときに TextNode を作成しないように ObjectMapper を構成する方法はありますか? または String.getBytes() を使用せずに適切なバイト配列を取得する他の方法はありますか?