Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从对象中的对象中提取值?_C#_Arrays_Json_Linq_Object - Fatal编程技术网

C# 如何从对象中的对象中提取值?

C# 如何从对象中的对象中提取值?,c#,arrays,json,linq,object,C#,Arrays,Json,Linq,Object,我对如何从一个对象中的一个对象获取一个值有点困惑。我尝试了许多方法,但似乎无法返回值 var结果返回以下内容: { "Date": "2016-12-14" "Stats": { "A": 9.23, "B": 5.63, "C": 0 } } 尝试访问“Stats”值的代码: 预期结果: { "Date": "2016-12-14" "Stats": { "A": 9.23, "B": 5.63 } } 无需将json反序列化

我对如何从一个对象中的一个对象获取一个值有点困惑。我尝试了许多方法,但似乎无法返回值

var结果返回以下内容:

{
  "Date": "2016-12-14"
  "Stats": {
    "A": 9.23,
    "B": 5.63,
    "C": 0
  }
}
尝试访问“Stats”值的代码:

预期结果:

{
  "Date": "2016-12-14"
  "Stats": {
    "A": 9.23,
    "B": 5.63
  }
}

无需将json反序列化为对象,因为当您从json中删除属性时,属性
C
的对象的默认值仍然为0,这将生成相同的json

检查

publicstaticvoidmain(字符串[]args)
{
字符串json=@”{
“日期”:“2016-12-14”,
“统计数据”:{
“A”:9.23,
“B”:5.63,
“C”:0
}
}";
JObject result=JsonConvert.DeserializeObject(json);
JObject statsObj=(JObject)结果[“Stats”];
对于(int i=statsObj.Properties().Count()-1;i>=0;i--)
{
var propValue=statsObj.Properties().Skip(i).FirstOrDefault();

if(decimal.Parse(propValue.Value.ToString())我建议在Json.NET中使用
JObject
模型,而不是在这种情况下使用强类型反序列化。@L.B好的,他可以使用double。TryParse@L.B他想检查的不仅仅是Stats或?@user3515765的属性。你可以检查那里的链接是否有效完整示例。如果有帮助,请将答案标记为正确。@mybirthname
public static void Main(){Console.WriteLine(“Hello World”);}
不是一个工作示例…:)@L.B抱歉dontNetFiddle没有保存它。请立即检查它
public class StatsLA
{
  public string Date { get; set; }
  public LocalStats stats { get; set; }
}
public class LocalStats
{
    public double A { get; set; }
    public double B { get; set; }
    public double C { get; set; }
}
{
  "Date": "2016-12-14"
  "Stats": {
    "A": 9.23,
    "B": 5.63
  }
}
public static void Main(string[] args)
{
    string json = @"{
  ""Date"": ""2016-12-14"",
  ""Stats"": {
    ""A"": 9.23,
    ""B"": 5.63,
    ""C"": 0
  }
}";


    JObject result = JsonConvert.DeserializeObject<JObject>(json);
    JObject statsObj = (JObject)result["Stats"];

    for(int i = statsObj.Properties().Count()-1; i>=0; i--)
    {
        var propValue = statsObj.Properties().Skip(i).FirstOrDefault();

        if (decimal.Parse(propValue.Value.ToString()) <= 0)
            propValue.Remove();
    }

    string endResult = result.ToString();

}