JSOnObject toJSOnStringエラー

1421 ワード

1.  com.alibaba.fastjson.JSONObjectはJSONを継承し、その2つの重要な方法を使用することができます.
Model model = new Model();
String json = JSONObject.toJSONString(model); // serializes model to Json
Model model2 = JSONObject.parseObject(json, Model.class); // deserializes json into model2

すなわち、json文字列をjsonオブジェクトに変換することができ、そのjsonオブジェクトの内容が所望のオブジェクトタイプである場合、Model model 2=JSONObjectを通過することができる.parseObject(json, Model.class); 予想される対象を取得する.
予期しないjson文字列の場合、固定キーがある場合は、JSONObject jsonObject=JSONObjectを通過することができる.parseObject(jsonStr);
そしてjsonObject.getString("key");などの基本的な方法でkey対のvalueを取得する.
2.ただし、使用時に注意すべき点は、すべてのオブジェクトがJSONObjectを通過するわけではない.toJSOnString(model)変換に成功しました.
例えば、アリ音声認証コードにアクセスする際、SingleCallByTtsRequestリクエストオブジェクトに上記のメソッドを使用すると、エラーメッセージが変換されます.
SingleCallByTtsRequest extends RpcAcsRequest

RpcAcsRequest extends AcsRequest

SingleCallByTtsResponse extends AcsResponse


彼らの継承関係は上述したように,ここでは誤りの原因を深く分析していないが,相互参照があるため解析変換に失敗したと推測される.
3.デフォルトフィルタ値nullのkey
public static String toJSOnString(Object object):このメソッドは、エンティティオブジェクトをJson文字列に変換するときにnullの属性をデフォルトで無視します.
public static String toJsonString(Object object,SerializerFeature...features):このメソッドは、エンティティオブジェクトをJson文字列に変換する際に、パラメータSerializerFeatureを渡さない.WriteMapNullValueの場合、nullの値を持つ属性は無視されます.