【发布时间】:2025-12-22 13:50:11
【问题描述】:
我必须反序列化以下 json 响应(Result 列表长度可变):
{
"ResultSet": {
"Query": "volkswagen",
"Result": [
{
"symbol": "VLKAY",
"name": "Volkswagen AG",
"exch": "PNK",
"type": "S",
"exchDisp": "OTC Markets",
"typeDisp": "Equity"
},
{
"symbol": "VOW3.DE",
"name": "Volkswagen AG",
"exch": "GER",
"type": "S",
"exchDisp": "XETRA",
"typeDisp": "Equity"
},
{
"symbol": "VOW.DE",
"name": "Volkswagen AG",
"exch": "GER",
"type": "S",
"exchDisp": "XETRA",
"typeDisp": "Equity"
}
]
}
}
我得到了什么:
JavaScriptSerializer js = new JavaScriptSerializer();
string jsonString = "...String is here...";
SearchObj obj = js.Deserialize<SearchObj>(jsonString);
我知道我通常必须创建一个合适的 obj。例如SearchObj 将被填充,但在这种情况下,我不完全确定这个对象应该是什么样子。我想出了:
class Data
{
public string symbol { get; set; }
public string name { get; set; }
public string exch { get; set; }
public string type { get; set; }
public string exchDisp { get; set; }
public string typeDisp { get; set; }
}
class Container
{
public string Query { get; set; }
public List<Data> Result { get; set; }
}
class SearchObj
{
public Container ResultSet { get; set; }
}
但是你猜怎么着,它不起作用,我只得到ResultSet = null。
【问题讨论】:
-
您是否收到解析错误/异常?
-
何不来看看动态,*.com/questions/3142495/…
-
@phoenix7360 没有错误/异常。理查德,我会调查的。
-
对象没有被填充吗?某些属性是否被填充?
-
我测试了你的代码,它可以工作:resultset=3