Java を使用して XPages「XAgent」から Json を作成しようとしています。私が試みている特定のフォーマットがあり、整数をキーとして使用しているため、理解できないエラーが発生し続けます。
エラーの例を次に示します。 ) com.ibm.commons.util.io.json.JsonGenerator$Generator.outLiteral(JsonGenerator.java:163) で com.ibm.commons.util.io.json.JsonGenerator$Generator.outLiteral(JsonGenerator.java:142) で) com.ibm.commons.util.io.json.JsonGenerator$Generator.toJson(JsonGenerator.java:138) で com.ibm.commons.util.io.json.JsonGenerator.toJson(JsonGenerator.java:64) でcom.ibm.commons.util.io.json.JsonGenerator.toJson(JsonGenerator.java:49)
次のような JSON 出力を作成しようとしています。
[
{
// minimum
0:{src:'item_one_format_one.ext', type: 'video/...'}
},
{
// one content, multiple formats
0:{src:'item_two_format_one.ext', type: 'video/...'},
1:{src:'item_two_format_two.ext', type: 'video/...'}
},
{
// one content, multiple formats, item specific config
0:{src:'item_three_format_one.ext', type: 'video/...'},
1:{src:'item_three_format_two.ext', type: 'video/...'},
3:{src:'item_three_format_three.ext', type: 'video/...'},
4:{src:'item_three_format_four.ext', type: 'video/...'},
config: {
option1: value1,
option2: value2
}
]
複数の「オブジェクト」ではなく、最後のオブジェクトはキー値の整数と文字列の組み合わせのようです。
ここに私が試してみたいくつかのコードがあります:
public String testList() throws JsonException, IOException {
Integer count = 0;
Map<String, Object> containerMap = new TreeMap<String, Object>();
System.out.println("A");
TreeMap<String, String> stringMap = new TreeMap<String, String>();
System.out.println("B");
stringMap.put("One", "Value1");
stringMap.put("Two", "Value2");
System.out.println("C");
containerMap.put("1", "One");
count++;
containerMap.put("2", "Two");
count++;
containerMap.put("3", "Three");
System.out.println("D");
String json = JsonGenerator.toJson(new JsonJavaFactory(), containerMap);
System.out.println("E");
return json;
}
このコードは以下を生成します:
{
"1": "Zero",
"2": "One",
"3": "Two"
}
キー値の引用符に注意してください。問題になると思います。キーの整数を取得できるようになりました。そして、3番目のオブジェクトの例に見られるように、整数と文字列を混在させる方法がわかりません。
アドバイスをいただければ幸いです。ありがとう!