0

いくつかのレガシープロダクションコードを理解しようとしています。

本番コードの動作をシミュレートするテストを次に示します。

Map json = new HashMap();
    json.put("messageCategory", "Hello World");

    ObjectMapper mapper = new ObjectMapper();

    String out = mapper.writeValueAsString(json);

    System.out.println(out);

    final JsonNode node = mapper.valueToTree(out);

    Assert.assertEquals("Hello World", node.findValue("messageCategory"));

出力は次のとおりです。

{"messageCategory":"Hello World"}
junit.framework.AssertionFailedError: 
Expected :Hello World
Actual   :null

valueToTree メソッドは null を返しますが、その理由はわかりません。

4

1 に答える 1

0

valueToTree() 呼び出しで文字列をシリアル化しているため、null です。したがって、マッピング後、ノードには次の形式の単一の文字列が含まれます。

"{\"messageCategory\":\"Hello World\"}"

そのため、ノードには「messageCategory」という名前のプロパティが含まれていません。

変化する

final JsonNode node = mapper.valueToTree(out);

final JsonNode node = mapper.valueToTree(json); 
于 2013-09-09T11:39:44.697 に答える