Java例外処理:java.lang.ClassCastException: JSON keys must be strings
941 ワード
今日プログラムを書いている時にこの異常に遭遇しました.初期コードは以下の通りです.
1つ目のアイデアは「mapとlistは特殊文字でJSOnObjectで自動的に反射するのか?」ということです.次にkey値を変更します.次のようにします.
テスト後も同様の異常情報が表示されます.仕方なく、ネットで関連資料を調べてみると、JSONObjectにMapを置くと、自動的にMapをJSONObjectと見なして処理しますが、私のmapのkey値はIntegerタイプで、変換するとこの異常を報告して、Mapのkey値をStringタイプに変えればいいです.同じように、後でコードを書くとき、JSONにMapが置かれている場合は、必ずMapのkey値のタイプに注意してください.Stringしかできません.覚えておいてください.
JSONObject obj = new JSONObject();
obj.put("map", map);
obj.put("list", list);
1つ目のアイデアは「mapとlistは特殊文字でJSOnObjectで自動的に反射するのか?」ということです.次にkey値を変更します.次のようにします.
JSONObject obj = new JSONObject();
obj.put("maps", map);
obj.put("lists", list);
テスト後も同様の異常情報が表示されます.仕方なく、ネットで関連資料を調べてみると、JSONObjectにMapを置くと、自動的にMapをJSONObjectと見なして処理しますが、私のmapのkey値はIntegerタイプで、変換するとこの異常を報告して、Mapのkey値をStringタイプに変えればいいです.同じように、後でコードを書くとき、JSONにMapが置かれている場合は、必ずMapのkey値のタイプに注意してください.Stringしかできません.覚えておいてください.