我一直在努力获取 $type
变量。
jsonTxt.json
{
"$type": "Things.YourThings.YourThingName, Things",
"Name": "Doe"
}
我试图将变量作为 string
获取,但没有成功。我只是得到 null
。
这是我的做法:
public class CustomName
{
[JsonProperty("$type")]
public string Type { get; set; }
public string Name { get; set; }
}
然后,
var customName = JsonConvert.DeserializeObject<CustomName>(jsonText);
实际上,我只是想提取名称 YourThingName
的类型。
最佳答案
试试这个:
JObject obj = JObject.Parse(jsonText);
var customName = new CustomName()
{
Name = obj["Name"].ToString(),
Type = obj["$type"].ToString()
};
然后,为了只获取 YourThingName
,您可以使用正则表达式或仅使用 String.Split
:
string name = Regex.Match(customName.Type, @"(?:\.)(\w*)(?:,)").Groups[1].ToString();
或者
string name = customName.Type.Split(',')[0].Split('.')[2];
您必须在访问不同的数组之前进行边界检查,否则您最终会遇到 IndexOutOfRange
异常。
关于c# - 如何获取带有 $ 符号的 Json 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37587554/