Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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# 将Json.NETJValue转换为int_C#_Json.net - Fatal编程技术网

C# 将Json.NETJValue转换为int

C# 将Json.NETJValue转换为int,c#,json.net,C#,Json.net,我试过: JValue myJValue = getJValue(someVar); int storedValue = JsonConvert.DeserializeObject(myJValue); 但这似乎只适用于作业项目。有没有办法从JValue中获取整数 也许这对你有帮助: int storedValue = myJValue.ToObject<int>(); int-storedValue=myJValue.ToObject(); intstoredvalue=(i

我试过:

JValue myJValue = getJValue(someVar);
int storedValue = JsonConvert.DeserializeObject(myJValue);

但这似乎只适用于作业项目。有没有办法从JValue中获取整数

也许这对你有帮助:

int storedValue = myJValue.ToObject<int>(); 
int-storedValue=myJValue.ToObject();

intstoredvalue=(int)myJValue

这里已经有了很好的答案,但我想再补充一个,大家可能会觉得有用。如果您有一个
列表
,我们称之为
myJValueList
,并且列表中的
JValue
对象在内部包含一个
int
,那么您可以通过以下操作获得该
int

foreach(int myInt in myJValueList){
    //do some work with the myInt 
}

对于任何对性能感兴趣的人来说,
Value()
ToObject()
快得多。对于字符串,只需使用
ToString()

智力测验:

value.Value<int>() - 2496ms
value.ToObject<int>() - 6259ms
value.value()-2496ms
value.ToObject()-6259ms
双重测试:

value.Value<double>() - 572ms
value.ToObject<double>() - 6319ms
value.value()-572ms
value.ToObject()-6319ms
字符串测试:

value.Value<string>() - 1767ms
value.ToObject<string>() - 6768ms
value.ToString() - 130ms
value.value()-1767ms
value.ToObject()-6768ms
value.ToString()-130ms

private static void RunPerfTest()
{
int循环=100000000;
JValue=新的JValue(1000d);
秒表sw=新秒表();
sw.Start();
for(int i=0;i
反序列化对象
只接受一个字符串参数…很好的一点,在这里搞混了
    private static void RunPerfTest()
    {
        int loops = 100000000;
        JValue value = new JValue(1000d);

        Stopwatch sw = new Stopwatch();
        sw.Start();
        for (int i = 0; i < loops; i++)
        {
            double x = value.Value<double>();
        }

        sw.Stop();
        Console.WriteLine("value.Value<double>()" + sw.ElapsedMilliseconds);


        sw.Restart();
        for (int i = 0; i < loops; i++)
        {
            double x = value.ToObject<double>();
        }

        sw.Stop();
        Console.WriteLine("value.ToObject<double>()" + sw.ElapsedMilliseconds);
    }