无法在C#中显示最后一个JSON项

时间:2017-10-14 04:35:08

标签: c# json

我开始学习json,我在第一个简单的应用程序中遇到了问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using System.IO;

namespace ConsoleApplication1
{
    class person
    {
        public string name { get; set; }
        public int age { get; set; }
        public override string ToString()
        {
            return string.Format("Name: {0} \nAge: {1}", name, age);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            string JSONstring = File.ReadAllText("bob.json");
            JavaScriptSerializer ser = new JavaScriptSerializer();
            person p1 = ser.Deserialize<person>(JSONstring);
            Console.WriteLine(p1);
            Console.ReadKey();

        }
    }
}

我的json文件是

{
  "Name": "BOB",
  "Age": 55
}

为什么在输出中给我年龄:0?

我该如何解决这个问题? 这是更好还是下载和使用Json.NET更好? 谢谢

an image that describe my problem

1 个答案:

答案 0 :(得分:2)

使用Json.NET在C#中序列化和反序列化JSON。例如

using System;
using Newtonsoft.Json;

class Person {
    public string Name { get; set; }

    public int Age { get; set; }

    public override string ToString() {
        return string.Format("Name: {0} \nAge: {1}", Name, Age);
    }
}

public class Program {
    public static void Main() {
        var json = @"{
            'Name': 'BOB',
            'Age': 55
        }";
        var person = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine(person);
    }
}

输出

Name: BOB 
Age: 55

请参阅小提琴DEMO