我有以下内容:
dynamic myJSON = JsonConvert.DeserializeObject(data);
在myJSON中,除了结尾处的数字外,还有其他名称相同的项。
string v1 = myJSON.variable1;
string v2 = myJSON.variable2;
string v3 = myJSON.variable3;
有时可能有3个(如上所述),有时可能有12个,有时只有1个或任何其他数字。
当我不知道会有多少个字符串时,如何将它们全部添加到字符串中?
TIA
答案 0 :(得分:2)
如果不使用dynamic
,可能会更好。使用JObject
,您可以使用字符串将其编入索引:
string variableName = "something";
var myJSON = JObject.Parse(data);
string v1 = myJSON[variableName + "1"];
string v2 = myJSON[variableName + "2"];
//...etc.
更新
您可以使用myJSON.Count
获取项目数。
所有这些都假设您的结构是平坦的,并且不需要钻取嵌套对象。
答案 1 :(得分:0)
您可以将数据反序列化为字典,然后遍历键。例如
var data = @"{ ""variable1"":""var1"", ""variable2"":""var2"", ""variable3"":""var3"", ""variable4"":""var4"" }";
var deserializedDictionary = JsonConvert.DeserializeObject<Dictionary<string,string>>(data);
foreach(var item in deserializedDictionary)
{
Console.WriteLine($"Key: {item.Key}, Value: {item.Value}");
}
尽管在上面的示例中我假设值是一个字符串,但是它可以是任何对象。