1
Put
とGet
リクエストjson文字列を含むフィールドに空の文字列を受け取ります。例えばC#Web Api GET POST jsonをカスタム文字列型として使用する
: 私は、次のJSONを入れて:受信クラスはタイプjオブジェクトのメンバーを持っている場合、私は変更する場合
{
"card": {
"foo": "bar",
"xyz": "dby"
}
}
は今、それはしかし正しく
public class contact {
public int id { get; set; }
public string name { get; set; }
public JObject card { get; set; }
}
マッピングされていますすべてのJTokensを受け取るカスタム文字列型にタイプします。
public class contact {
public int id { get; set; }
public string name { get; set; }
public JsonString card { get; set; } //**Changed HERE**//
}
PutメソッドとGetメソッドの両方が空の文字列を表示します。より
public class JsonString
{
private string _json;
public JsonString (string json)
{
this._json = json;
}
public string Value()
{
return _json;
}
public override int GetHashCode()
{
return _json.GetHashCode();
}
public override bool Equals(object obj)
{
return (obj is JsonString) && this.GetHashCode() == obj.GetHashCode();
}
public override string ToString()
{
return _json;
}
}
jsonStringクラスを、おそらくこのような状況では必要ありません:
JsonStringは、次のようにのように見えます。 put/Getが空の文字列を返す理由と解決方法
EDIT:
入れは、次のようになります。
[HttpPut]
[Route("contacts/{contactid}")]
public HttpResponseMessage update(int id, contact c) {
contact.update(c);
}
これはあなたの問題に対する実際の応答ではありませんが、Newtonsoft.Jsonを見てみると使いやすく、jsonやbackwardsへのオブジェクトのシリアル化と逆シリアル化を修正することができます。 –
あなたは 'JsonString'で何をしようとしていますか? – Coder