Put
및 Get
요청 json 문자열을 포함해야하는 필드에 대해 빈 문자열을받습니다.C# Web Api 사용자 지정 문자열 형식으로 json POST를 받았습니다.
: 나는 다음과 같은 JSON 넣어 :
{
"card": {
"foo": "bar",
"xyz": "dby"
}
}
수신 클래스는 jobject 타입의 멤버를 가지고 있다면이를 변경하면 이제 그것은 그러나 제대로
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 메서드는 모두 빈 문자열을 표시합니다. 다음과 같은
JsonString 보인다 :
은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 클래스 더, 그러나 아마이 상황에서 필요하지 않습니다. put/Get이 빈 문자열을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
편집 :
풋은 다음과 같습니다
하는 jobject는 다음과 같습니다[HttpPut]
[Route("contacts/{contactid}")]
public HttpResponseMessage update(int id, contact c) {
contact.update(c);
}
실제로 문제에 대한 응답이 아니지만 Newtonsoft.Json에서 시간을 들여 사용하면 손쉽게 사용할 수 있으며 json 및 backwards 객체에 대한 직렬화 및 비 직렬화를 올바르게 제공합니다. –
정확히'JsonString'에서 무엇을하려고합니까? – Coder