¿Microsoft proporciona alguna biblioteca para trabajar con JSON en C#? Si no, ¿qué biblioteca de código abierto recomiendas?Biblioteca JSON para C#
Respuesta
¿Cuál es la ventaja de usar JSON.NET sobre System.Web.Script.Serialization.JavaScriptSerializer? – weilin8
le permite usar como propiedad de clase, en lugar de serializar cadenas, para una ... hay mucho más ... – balexandre
No use JavaScriptSerializer alrededor de 40 veces más lento que la mayoría de los demás serializadores JSON que he comparado. – mythz
¿Esto es lo que estás buscando?
Tenga una mirada en el espacio de nombres system.web.script.serialization (creo que necesite Net 3.5)
Si nos fijamos aquí, verá varias bibliotecas diferentes para JSON en DO#.
Encontrará una versión para LINQ, así como algunos otros. Hay aproximadamente 7 bibliotecas para C# y JSON.
marcoel .NET soporta JSON a través de JavaScriptSerializer. Aquí hay un buen ejemplo para comenzar.
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; }
}
}
este es un buen código, ¿cómo podría una de las clases recuperar los resultados? Por ejemplo, ObjectName para dar salida a un cuadro de texto con los resultados 'test name'? He intentado 'test = GoogleTranslator.GoogleJSON.NameTypePair.ObjectName' messagebox.show (prueba) – Ebikeneser
Prueba el Proyecto Vici, Vici Analizador. Incluye un analizador/tokeniser JSON. Funciona muy bien, lo usamos junto con el marco MVC.
Más información en: http://viciproject.com/wiki/projects/parser/home
me olvidaba decir que es de código abierto por lo que siempre puede tomar un vistazo al código si lo desea.
También debe tratar mi ServiceStack JsonSerializer - es el más rápido serializador JSON .NET en el momento based on the benchmarks of the leading JSON serializers y soporta la serialización de cualquier tipo, POCO DataContracts, Listas/Diccionarios, interfaces, herencia, objetos enlazado en tiempo, incluyendo los tipos anónimos, etc.
Ejemplo básico
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = customer.ToJson();
var fromJson = json.FromJson<Customer>();
Nota: Sólo utilice Microsoft de JavaScriptSerializer si el rendimiento no es importante para usted ya que he tenido que dejar fuera de mis puntos de referencia desde su hasta 40x-100x más lento de lo º e otros serializadores JSON.
para responder a su primera pregunta, Microsoft enviará un DataContractJsonSerializer: ver MSDN How to: Serialize and Deserialize JSON Data
para dar una más hasta la fecha respuesta a esta pregunta: sí, .Net incluye JSON seriliazer/deserliazer desde la versión 3.5 a través del Sistema .Runtime.Serialization.Json Namespace: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx
Pero según el creador de JSON.Net, el .Net Framework en comparación con su implementación de código abierto es mucho más lento.
- 1. Biblioteca JSON-RPC no GPL para C++
- 2. Biblioteca Json para .Net Microframework
- 3. Biblioteca PHP para convertir JSON a CSV?
- 4. cómo agregar biblioteca JSON
- 5. Biblioteca GetOpt para C#
- 6. Biblioteca P2P para C++
- 7. biblioteca C++ para XMLRPC
- 8. ¿Qué biblioteca JSON funciona bien para ti en .NET?
- 9. Biblioteca XML-RPC para C++
- 10. Biblioteca estándar madura para C
- 11. Biblioteca de UUID para C?
- 12. biblioteca de audio para C#
- 13. Biblioteca de registro para C
- 14. Biblioteca de criptografía para C++
- 15. Biblioteca NFC C# para Windows
- 16. Biblioteca para codificar/decodificar desde json a java.util.Map?
- 17. Cuál es la biblioteca JSON más madura para Erlang
- 18. ¿Hay una biblioteca javascript JSON binaria disponible para navegadores?
- 19. ¿Qué me falta en las opciones del compilador para vincular con la biblioteca estática JSON-C?
- 20. ¿Hay una biblioteca para leer JSON en C# en Windows Mobile?
- 21. Deserializar primitivas JSON con la biblioteca Ruby JSON incorporada
- 22. Analizador JSON recomendado en C?
- 23. ALLOW_UNQUOTED_FIELD_NAMES en la biblioteca jackson JSON
- 24. Conversión de objeto a JSON y JSON a objeto en PHP, (biblioteca como Gson para Java)
- 25. ¿Puedo usar la biblioteca Scala lift-json para analizar un JSON en un mapa?
- 26. Javascript Biblioteca de manipulación de datos JSON
- 27. biblioteca c/C++ NLP
- 28. Generics/JSON JavaScriptSerializer C#
- 29. convertir JSON para C# lista de objetos
- 30. Carga JSON para HttpClient en C#?
¿Quiere decir consumir, crear o ambos? –
Tanto consumir como crear. Gracias – weilin8