Frage JSON-Bibliothek für C # [geschlossen]


Stellt Microsoft eine Bibliothek zur Verfügung, um mit JSON in C # zu arbeiten? Wenn nicht, welche Open Source-Bibliothek empfehlen Sie?


76
2017-09-24 21:54


Ursprung


Antworten:


JSON.Net


77
2017-09-24 21:59



Sie sollten auch meinen ServiceStack ausprobieren JsonSerializer - Es ist der schnellste .NET JSON-Serializer im Moment basierend auf den Benchmarks der führenden JSON-Serialisierer und unterstützt das Serialisieren von beliebigen POCO-Typen, DataContracts, Listen / Dictionaries, Interfaces, Vererbung, Late-gebundenen Objekten einschließlich anonymer Typen usw.

Basisbeispiel

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

Hinweis: Verwenden Sie den JavaScriptSerializer von Microsofts nur dann, wenn die Leistung für Sie nicht wichtig ist, da ich sie seit meiner Einführung nicht mehr in meinen Benchmarks verwenden muss 40x-100x langsamer als die anderen JSON-Serialisierer.


19
2017-08-18 02:49



Das .NET Framework unterstützt JSON über JavaScriptSerializer. Hier ist ein gutes Beispiel für den Einstieg.

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



Wenn Sie hier nachsehen, werden Sie mehrere verschiedene Bibliotheken für JSON auf C # sehen.

http://json.org/

Sie werden eine Version für LINQ sowie einige andere finden. Es gibt ungefähr 7 Bibliotheken für C # und JSON.


7
2017-09-24 21:58



Ist das wonach Sie suchen?

System.Web.Script.Serialization.JavaScriptSerializer 


5
2017-09-24 21:57



Sehen Sie sich den Namespace system.web.script.serialization an (ich denke, Sie werden .Net 3.5 benötigen)


3
2017-09-24 21:58



Um eine aktuellere Antwort auf diese Frage zu geben: Ja, .Net enthält JSON seriliazer / deserliazer seit Version 3.5 durch den System.Runtime.Serialization.Json Namespace: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx

Laut dem Entwickler von JSON.Net ist das .Net Framework im Vergleich zu seiner Open-Source-Implementierung jedoch sehr viel langsamer.


2
2017-12-13 04:05



Um Ihre erste Frage zu beantworten, liefert Microsoft einen DataContractJsonSerializer: siehe msdn Gewusst wie: Serialisieren und Deserialisieren von JSON-Daten


1
2017-09-29 06:07