程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#操作 JSON辦法匯總

C#操作 JSON辦法匯總

編輯:C#入門知識

C#操作 JSON辦法匯總。本站提示廣大學習愛好者:(C#操作 JSON辦法匯總)文章只能為提供參考,不一定能成為您想要的結果。以下是C#操作 JSON辦法匯總正文


RestAPI中, 常常須要操作json字符串,  須要把json字符串"反序列化"成一個對象, 也須要把一個對象"序列化"成一字符串。

C# 操作json,  比擬簡略。  本文引見幾種辦法

步調

Json 字符串 反序列化成對象 共須要2步:

第一步:樹立響應的實體類

第二步: 挪用辦法把Json字符串"反序列化"成對象

懂得json的語法

起首要懂得json的語法,如許能力曉得怎樣創立實體類.

Json 的語法很簡略, 就四條

數據在稱號/值對中
數據由逗號分隔
花括號保留對象
方括號保留數組

創立實體類的例子

{"FirstName":"小坦克","LastName":"Tank","Age":30}
響應的實體類可認為

  public class Person 
  {
    public String FirstName
    { get; set; }

    public String LastName
    { get; set; }

    public int Age
    { get; set; }
  }

主動生成JSON的實體類

一個龐雜的實體類,我們本身去寫的話,能夠須要1個小時以上。 那有無對象能直接生成實體類呢,如許能便利太多了。  固然有

http://jsonclassgenerator.codeplex.com/  ----開源的winform對象。

應用第三方對象 Newtonsoft.Json.dll

長處:  應用異常便利.   看個例子就曉得怎樣用了

下載地址   http://www.jb51.net/dll/Newtonsoft.Json.dll.html

代碼示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;

namespace JsonDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      string personJson = "{ 'FirstName': '小坦克','LastName':'Tank xiao', 'Age':'30', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac編程', 'Price':'39.9'}]}";

      string allMoveJson = @"[{ 'FirstName': '小坦克','LastName':'Tank xiao', 'Age':'30', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac編程', 'Price':'39.9'}]},{
               'FirstName': '小坦克2','LastName':'Tank xiao2', 'Age':'40', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac編程', 'Price':'39.9'}]}]";

      // 反序列化 單個對象
      Person oneMovie = JsonConvert.DeserializeObject<Person>(personJson);

      // 反序列化 對象聚集
      List<Person> allMovie = JsonConvert.DeserializeObject<List<Person>>(allMoveJson);

      Console.WriteLine(oneMovie.FirstName);
      Console.WriteLine(allMovie[1].FirstName);

      // 序列化
      string afterJson = JsonConvert.SerializeObject(allMovie);
    }
  }


  public class Person
  {
    public String FirstName
    { get; set; }

    public String LastName
    { get; set; }

    public int Age
    { get; set; }

    public List<Book> Books
    { get; set; }
  }

  public class Book
  {
    public string BookName
    { get; set; }

    public string Price
    { get; set; }
  }
}

最初我們來看個實例

using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;

namespace TestJson
{
  class Program
  {
    static void Main(string[] args)
    {


      string json = "{\"a\":\"sadsad\",\"c\":{\"d\":\"adad\"}}";

      //CCC ccc = new CCC();
      //ccc.d = "adad";

      //AAA aaa = new AAA();
      //aaa.a = "sadsad";
      //aaa.b = "dfgdg";
      //aaa.c = ccc;


      AAA aaa = new AAA();

      aaa= JavaScriptConvert.DeserializeObject<AAA>(json);


      // string json = JavaScriptConvert.SerializeObject(aaa);

      // Console.WriteLine(json);

      Console.Read();

    }
  }

  public class AAA {

    private string m_a;
    public string a
    {
      get { return m_a; }
      set { m_a = value; }
    }

    private string m_b;
    public string b
    {
      get { return m_b; }
      set { m_b = value; }
    }

    private CCC m_c;
    public CCC c
    {
      get { return m_c; }
      set { m_c = value; }
    }
  }
  public class CCC
  {
    private string m_d;
    public string d
    {
      get { return m_d; }
      set { m_d = value; }
    } 
  }

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved