Colección de citas famosas - Slogan de motivación - C ¡Problema al analizar la cadena Json!

C ¡Problema al analizar la cadena Json!

Primero, lea JSON de la cadena

# include ltiostream gt

#Include " json/json.h "

Usar espacio de nombres std

int main()

{

//Cadena

const char * str =

" {\" praenomen\": \"Gayo\",\"nomen\":\"Julio\",\"cognomen\":\"Cézar\","

" \"生\":- 100, \" dead\":-44}";

JSON::Reader Reader;

JSON::Value root;

//De carácter Leer datos en cadena

if (reader.parse(str, root))

{

cadena praenomen = root["praenomen"]. asString();

Nomen de cadena = raíz[ "nomen" ]. asString();

cadena cognomen = root[" cognomen "]. asString();

int nacido = raíz[ "nacido" ]. asInt();

int murió = root[ "murió" ].

asInt();

cout lt ltpraenome " " nomen " " cognomen

lt lt"año de nacimiento" lt ltborn

lt lt", murió En qué año " lt lt deadlt ltendl

}

Devuelve 0;

}

Generar archivo archivo

LIB = -L/usr/local/LIB/LIB JSON/-ljson _ Linux-gcc-4 4 7 _ libmt

Respuesta: a.o

g -o a -std=c. 0x a.o $(LIB)

a o a . -RF a o a

En segundo lugar, lea JSON del archivo

PersonalInfo.json (un archivo que almacena cadenas en formato json)

{

[Nombre]: "Tsybius",

[Edad]: 23,

"sex_is_male": Sí,

"Socio de cooperación":

{

"Nombre del socio": "Galata",

"partner_age": 21,

"partner_gender_is_male": false

},

"logro": ["ach1","ach2","ach3"]

}

# incluir ltiostream gt

# incluir ltfstream gt

#Incluir " json/json.h "

Usar espacio de nombres std

int main()

{

JSON::Reader Reader;

JSON::Value root;

//Leer desde archivo

ifstream es;

is.open( "PersonalInfo.json", IOs::binary);

if (reader.parse(is, root))

{

//Leer información del nodo raíz

string name = root[ "name" ] . asString();

int edad = raíz[ "edad" ]. asInt();

bool sexo _ es _ masculino = root[" sexo _ es _ masculino "]. as bool();

cout lt lt"Mi nombre es" lt ltnamelt ltendl

cout lt lt"Yo soy" lt ltagelt lt"años" lt ltendl

cout lt lt"I am" lt lt(Gender_is_male? "Man": "Woman") lt ltendl

//Leer información del nodo secundario

cadena asociada _ nombre = raíz ["socio"]["socio_nombre"].

asString();

int socio_edad = root["socio"]["socio_edad"]. asInt();

bool pareja_sexo_es_masculino = root["pareja"]["pareja_sexo_es_masculino"]. as bool();

cout lt lt "El nombre de mi pareja es " lt ltpartner_name lt ltendl

cout lt lt(partner_sex_is_male?" He": "ella") lt lt"es "

lt ltpartner _ age lt lt"años" lt ltendl

//Leer información de la matriz

cout lt lt "Este es mi logro:" lt ltendl

for(int I = 0; i lt root ["logro"].size(); i )

{

string ach = root[ "logro"][i]. asString();

cout lt ltach lt lt\ t';

}

cout lt ltendl

cout lt lt"Leer ¡Listo! lt ltendl

}

es cerrar();

Devuelve 0;

}

Generar archivo

LIB =-L/usr/local/LIB/LIB JSON/-ljson _ Linux-gcc-4 4 . 7 _ libmt

Respuesta: a.o

g -o a -std=c 0x a.o $(LIB)

a o a . p>Limpiar:

RM-RF a o a

Tercero, guardar la información en formato JSON.

a.cpp

# incluir ltiostream gt

# incluir ltfstream gt

#Incluir " json/json.h "

Usar espacio de nombres std

int main()

{

//Nodo raíz

JSON::Valor raíz ;

//Atributos del nodo raíz

root[" name "]= Json::Value(" Tsybius ");

root[" age " ] = Json::Value(23);

root[" sex _ is _ male "]= Json::Value(true);

//Nodo hijo

Json::Value socio;

//Atributos del subnodo

socio[" socio _ nombre "]= Json::Value("Galata" );

pareja["pareja_edad"]= Json::Value(21);

pareja["pareja_sexo_es_hombre"]= Json::Valor (falso);

//El nodo secundario se cuelga en el nodo raíz.

root[" socio "]= Json::Value(partner);

//Forma de matriz

Raíz["logro"]. append(" ach 1 ");

raíz["logro"]. append(" ach 2 ");

raíz["logro"].

append(" ach 3 ");

//Salida directa

cout lt ltfast write: "lt; ltendl

JSON::fast write fw;

cout lt ltfw . write(root) lt; ltendl lt ltendl

//Salida sangrada

cout lt ltstyled escritor: " lt; ltendl

JSON:: SW de escritor con estilo;

cout lt ltsw.write(root) ltendl lt ltendl

//Salida a archivo

ofstream os

OS .open(" información personal ");

os lt ltSW .

cierre(); p>Devolver 0;

}

Generar archivo

LIB =-L/usr/local/LIB/LIB JSON/-ljson _ Linux-gcc - 4 4 . 7 _ libmt

Respuesta: a.o

g -o a -std=c 0x a.o $(LIB)

a . CPP

g -c a.cpp

Limpieza:

RM-RF a o a

{

" Logro": ["ach1", "ach2", "ach3"],

[Edad]: 23,

[Nombre]: "Tsybius",

"Socio": {

" socio_age": 21,

"Nombre del socio": "Galata",

" socio_sex_is_male": falso

},

"sex_is_male": verdadero

}