我有一个JSON文件中像这样单独提供:反序列化JSON阵列与键的字典从JSON
{
"price": ["123.50", "124.6", "126.30"],
"order": ["23", "30", "20"]
}
我想,以填补我的对象Product
:
public class Product {
public Dictionary<string, Object> priceInfo;
public Dictionary<string, Object> orderInfo;
}
我有各JSON对象每个值的描述(这里有数组)可能在Product
类中,例如:
String[] defPriceInfo = {"price", "avgprice", "maxprice"};
最后,我将访问Product
对象的这些数值与priceInfo.TryGetValue("avgprice", ...)
,它将返回给我,我中搜索堆栈溢出值
124.6
,但我没有找到一个类似的问题。 其实我试图覆盖JsonConverter.ReadJson
,但它没有奏效;问题是我想要的个性化“钥匙”。
编辑1:我有这个ReadJson()
方法,但这是错误的。
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
object res = new Object();
var tokenType = reader.TokenType;
if (tokenType == JsonToken.StartObject)
{
object obj = serializer.Deserialize(reader);
res = new Dictionary<string, string>();
}
else if (tokenType == JsonToken.StartArray)
{
res = serializer.Deserialize(reader);
}
return res;
}
你说的*也许在Item类意味着*?你的问题中没有'Item'类。你是不是指'Product'类?如果是这样,你能给出一个[完整的例子](https://stackoverflow.com/help/mcve)你想要以这种方式序列化和反序列化的类,以及你在'ReadJson()'中尝试过的东西吗? – dbc
对不起,我改变了项目的产品错误。我的意思是说“也许”不是最好的解决方案。但实际上我看到的只是解决方案。我也想用文件加载信息。我会发布我的尝试。我试过的解决方案的问题是,我不知道如何在我的课程中为我读取的每个值传递“键”描述符。 – Neyoh
@dbc我加了我的例子,但这是完全错误的。我不明白这是如何工作的 – Neyoh