0

これは JSON 文字列です -

"{\"body\":[\"VAL1\",\"VAL2\"],\"head\":{\"result\":true,\"time\":3.859}}"

これらは私のクラスです -

[Serializable]
public class ResponseHead
{               
    public bool result {get; set;}              
    public float time {get; set;}
}

[Serializable]
public class ResponseBody
{        
    public string[] body {get; set;}
}

[Serializable]
public class ResponseObj
{        
    public ResponseBody body {get; set;}
    public ResponseHead head { get; set; }
}

そしてコード -

JavaScriptSerializer serializer = new JavaScriptSerializer();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    responseText = streamReader.ReadToEnd();
}
ResponseObj response_obj = new ResponseObj();

ResponseHead rhead = new ResponseHead();
rhead = serializer.Deserialize<ResponseHead>(responseText); //not working

結果の ResponseHead オブジェクトには次の値があります。

result: false 
time: 0.0 

値を正しくマッピングできませんが、その理由はわかりません。ResponseBody の値が正しく入力されています。

助けてください!

4

1 に答える 1

4

読み取ろうとしているように見えますResponseObj(これは JSON の最上位オブジェクトです) が、ResponseHead. 以下が機能するはずです:

var wholeObject = serializer.Deserialize<ResponseObj>(responseText);
rhead = wholeObject.head;
于 2012-04-23T16:31:52.337 に答える