2017-10-14 30 views
0

我开始学习JSON和我在我的第一个简单的应用程序不能在C#中显示最近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

+0

你的名字是否正确? –

+0

是的,它显示正确的名称“BOB”,但年龄是:0 –

+0

它工作正常没有任何问题 – Sajeetharan

回答

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

+0

这是更好用吗?谢谢 –

+1

@ A.Sharkh yes;比JavaScriptSerializer更好更快。 – Shreevardhan