2012-10-10 28 views
5

Solo he trabajado anteriormente con C++ en el entorno de desarrollo de Visual Studio. Ahora me han pedido que reciba y envíe datos usando JSON.Alguien ha trabajado con JSON en C++ en Visual Studio 2010

He buscado en internet, pero no puedo encontrar ningún ejemplo de JSON siendo utilizado por C++ en Visual Studio. Si alguien ha trabajado con JSON en C++ en Visual Studio 2010, pase el enlace.

+0

Prueba esto: [Json11] (https://github.com/dropbox/json11) o [PicoJSON] (https://github.com/kazuho/picojson). Sin BOOST. – Sergo

Respuesta

3

Si va a instalar impulso :: espíritu puede utilizar este lib JSON Spirit. Funciona con VS como un encanto.

ACTUALIZACIÓN Include espíritu JSON y utilizar

#include <json_spirit/json_spirit.h> 
#include <json_spirit/json_spirit_reader_template.h> 
#include <json_spirit/json_spirit_writer_template.h> 
+0

Cómo instalar impulso :: espíritu, puede usted por favor guíe? Sólo – Dany

+0

descargarlo desde aquí http://boost-spirit.com/home/ e incluyen cabeceras –

+2

que he descargado determinado proyecto en el enlace JSON Spirit.It incluye cinco proyectos, puede que sólo dime por favor, que se toma el objeto JSON como argumento que obtengo de uno de mis métodos de C# DLL, lo analizo y lo guardo en un archivo. – Dany

1

JsonCpp es un analizador C++ JSON que se compila en VS según su README.

+0

Yo no trabajé – Dany

+0

no admite Unicode correctamente – daisy

1

Apache Thrift apoya JSON. Esta es una buena alternativa, porque además de JSON, también obtiene mecanismos de transporte (sockets TCP, etc.) y, opcionalmente, en un entorno de subprocesos múltiples.

Here se puede encontrar información sobre JSON para las ventanas.

ahorro es multiplataforma, por lo que debería funcionar bastante bien con VS.

0

Puede probar rapidjson.

Es pequeño, rápido, de forma nativa apoyar VC2008/2010, con dependencias mínimas (por ejemplo, sin refuerzo, ni siquiera STL).

Puede analizar y generar JSON utilizando la API de estilo SAX o DOM.

0

Json11 - es una pequeña biblioteca JSON para C++ 11, proporcionando JSON análisis y la serialización.

El objeto principal proporcionado por la biblioteca es json11 :: Json. Un objeto Json representa cualquier valor JSON: null, bool, number (int o double), string (std :: string), array (std :: vector) u objeto (std :: map).

Los objetos Json actúan como valores. Se pueden asignar, copiar, mover, comparar por igualdad u orden, y así sucesivamente. También hay métodos auxiliares Json :: dump, para serializar un Json en una cadena, y Json :: parse (estático) para analizar una std :: cadena como un objeto Json.

Ejemplo:

 const string simple_test = 
      R"({"k1":"v1", "k2":42, "k3":["a",123,true,false,null]})"; 
     string err; 
     auto json = Json::parse(simple_test, err); 
     std::cout << "k1: " << json["k1"].string_value() << "\n"; 

PicoJSON - es una pequeña JSON analizador/serializador para C++ con propiedades siguientes:

  • cabecera de archivo sólo
  • sin dependencias externas (únicos usos bibliotecas estándares de C++)
  • STL-frendly (las matrices son repr esented utilizando std :: vector, los objetos son std :: mapa)
  • proporciona tanto la interfaz de tracción y de secuencias() de la interfaz basada en eventos

Ejemplo:

 std::string json1 = R"({ "k1":"v1", "k2" : 42, "k3" : ["a",123,true,false,null] })"; 
     picojson::value v; 
     std::string err1 = picojson::parse(v, json1); 
     const picojson::object& o = v.get<picojson::object>(); 
     for (picojson::object::const_iterator i = o.begin(); i != o.end(); ++i) { 
      std::cout << i->first << " " << i->second << std::endl; 
     } 

Tanto fácilmente utilizado en Visual Estudio con libriries estándar (NO ninguna dependencia adicional).