Pertanyaan Pustaka JSON untuk C # [tertutup]


Apakah Microsoft menyediakan pustaka untuk bekerja dengan JSON di C #? Jika tidak, perpustakaan sumber terbuka apa yang Anda rekomendasikan?


76
2017-09-24 21:54


asal


Jawaban:


JSON.Net


77
2017-09-24 21:59



Anda juga harus mencoba ServiceStack saya JsonSerializer - Ini yang tercepat. NET JSON serializer saat ini berdasarkan tolok ukur dari serializers JSON terkemuka dan mendukung serialisasi setiap POCO Type, DataContracts, Lists / Dictionaries, Interfaces, Inheritance, Late-bound objects termasuk anonim, dll.

Contoh Dasar

var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = customer.ToJson();
var fromJson = json.FromJson<Customer>(); 

Catatan: Gunakan hanya Microsofts JavaScriptSerializer jika kinerja tidak penting bagi Anda karena saya harus meninggalkannya dari tolok ukur saya sejak hingga 40x-100x lebih lambat dari serialis JSON lainnya.


19
2017-08-18 02:49



Kerangka .net mendukung JSON melalui JavaScriptSerializer. Berikut ini contoh bagus untuk memulai.

using System.Collections.Generic;
using System.Web.Script.Serialization;

namespace GoogleTranslator.GoogleJSON
{
    public class FooTest
    {
        public void Test()
        {
            const string json = @"{
              ""DisplayFieldName"" : ""ObjectName"", 
              ""FieldAliases"" : {
                ""ObjectName"" : ""ObjectName"", 
                ""ObjectType"" : ""ObjectType""
              }, 
              ""PositionType"" : ""Point"", 
              ""Reference"" : {
                ""Id"" : 1111
              }, 
              ""Objects"" : [
                {
                  ""Attributes"" : {
                    ""ObjectName"" : ""test name"", 
                    ""ObjectType"" : ""test type""
                  }, 
                  ""Position"" : 
                  {
                    ""X"" : 5, 
                    ""Y"" : 7
                  }
                }
              ]
            }";

            var ser = new JavaScriptSerializer();
            ser.Deserialize<Foo>(json);
        }
    }

    public class Foo
    {
        public Foo() { Objects = new List<SubObject>(); }
        public string DisplayFieldName { get; set; }
        public NameTypePair FieldAliases { get; set; }
        public PositionType PositionType { get; set; }
        public Ref Reference { get; set; }
        public List<SubObject> Objects { get; set; }
    }

    public class NameTypePair
    {
        public string ObjectName { get; set; }
        public string ObjectType { get; set; }
    }

    public enum PositionType { None, Point }
    public class Ref
    {
        public int Id { get; set; }
    }

    public class SubObject
    {
        public NameTypePair Attributes { get; set; }
        public Position Position { get; set; }
    }

    public class Position
    {
        public int X { get; set; }
        public int Y { get; set; }
    }
}

14
2017-09-24 22:02



Jika Anda melihat di sini, Anda akan melihat beberapa pustaka yang berbeda untuk JSON di C #.

http://json.org/

Anda akan menemukan versi untuk LINQ serta beberapa lainnya. Ada sekitar 7 perpustakaan untuk C # dan JSON.


7
2017-09-24 21:58



Apakah ini yang Anda cari?

System.Web.Script.Serialization.JavaScriptSerializer 


5
2017-09-24 21:57



Silahkan lihat namespace system.web.script.serialization (saya pikir Anda perlu. Net 3.5)


3
2017-09-24 21:58



Untuk memberikan jawaban yang lebih terkini untuk pertanyaan ini: ya, .Net menyertakan JSON seriliazer / deserliazer sejak versi 3.5 melalui System.Runtime.Serialization.Json Namespace: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx

Namun menurut pencipta JSON.Net, .Net Framework dibandingkan dengan implementasi open source-nya sangat lambat.


2
2017-12-13 04:05