Microsoft fornisce a qualsiasi libreria funzioni con JSON in C#? In caso contrario, quale libreria open source mi consigliate?Libreria JSON per C#
risposta
Qual è il vantaggio dell'utilizzo di JSON.NET su System.Web.Script.Serialization.JavaScriptSerializer? – weilin8
ti permette di usare come proprietà di classe, invece di serializzare solo stringhe, per esempio ... c'è molto di più .. – balexandre
Non usare JavaScriptSerializer circa 40x più lento della maggior parte degli altri serializzatori JSON che ho messo a confronto. – mythz
È questo quello che stai cercando?
Dai un'occhiata alla namespace system.web.script.serialization (credo avrete bisogno di .Net 3.5)
Se guardate qui, vedrete diverse librerie diverse per JSON su C#.
Troverete una versione per LINQ così come alcuni altri. Ci sono circa 7 librerie per C# e JSON.
quadro.NET supporta JSON attraverso JavaScriptSerializer. Ecco un buon esempio per iniziare.
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; }
}
}
questo è un buon codice, come potrei una delle classi per ottenere i risultati? Ad esempio ObjectName per l'output in una casella di testo con il 'nome del test' dei risultati? Ho provato 'test = GoogleTranslator.GoogleJSON.NameTypePair.ObjectName' messagebox.show (test) – Ebikeneser
Prova il progetto Vici, Vici Parser. Include un parser/tokeniser JSON. Funziona alla grande, lo usiamo insieme al framework MVC.
Maggiori informazioni su: http://viciproject.com/wiki/projects/parser/home
ho dimenticato di dire che è open source, in modo da poter sempre dare un'occhiata al codice, se volete.
Si dovrebbe anche provare la mia ServiceStack JsonSerializer - è il più veloce serializzatore NET JSON al momento based on the benchmarks of the leading JSON serializers e supporta la serializzazione di qualsiasi tipo, POCO DataContracts, Elenchi/Dizionari, interfacce, ereditarietà, oggetti tardiva tra i tipi anonimi, ecc
esempio di base
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = customer.ToJson();
var fromJson = json.FromJson<Customer>();
Nota: utilizzare solo Microsofts JavaScriptSerializer se le prestazioni non è importante per voi come ho dovuto lasciare fuori dei miei punti di riferimento dal momento che il suo fino a 40x-100x più lento di th e altri serializzatori JSON.
Per rispondere alla tua prima domanda, Microsoft fa spedire un DataContractJsonSerializer: vedere MSDN How to: Serialize and Deserialize JSON Data
per dare una più aggiornata risposta a questa domanda: sì, Net comprende JSON seriliazer/deserliazer a partire dalla versione 3.5 attraverso il Sistema .Runtime.Serialization.Json Namespace: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx
Ma secondo il creatore di JSON.Net, il .Net Framework rispetto alla sua implementazione open source è molto più lento.
- 1. Libreria UUID per C?
- 2. Libreria P2P per C++
- 3. Libreria PHP per convertire JSON in CSV?
- 4. come aggiungere libreria JSON
- 5. Catching Eccezioni JSON con libreria json-play
- 6. C++ Protobuf da/per la conversione JSON
- 7. Converti stringa JSON per C# dizionario
- 8. Libreria standard matura per C
- 9. Funzione libreria C per ordinare
- 10. semplice libreria bcrypt per C
- 11. Libreria NFC C# per Windows
- 12. Libreria C# per scattare screenshot?
- 13. c/C++ Libreria NLP
- 14. Quale libreria JSON funziona correttamente con .NET?
- 15. Analizzatore JSON consigliato in C?
- 16. Qual è la libreria JSON più matura per Erlang
- 17. La migliore libreria json rpc 2.0 per Android
- 18. Deserializzare le primitive JSON con la libreria Ruby JSON integrata
- 19. Chiama libreria C++ da C#
- 20. libreria C++ con l'interfaccia c
- 21. Libreria C# per SSH e Telnet
- 22. libreria C++ per creare file tar
- 23. Libreria C# per una facile riflessione dinamica
- 24. Buona libreria di programmazione lineare per C#?
- 25. Buona libreria di stampa per C?
- 26. Libreria Objective-C per alba e tramonto?
- 27. Migliore libreria di logging per C++
- 28. Libreria C++ per gestire eps/pdf
- 29. cache di libreria per Objective-C (iPhone)
- 30. Libreria di crittografia RSA per C++
Intendi consumare, creare o entrambi? –
Entrambi consumano e creano. Grazie – weilin8