2012-11-06 3 views
0

Nous passons des librairies Json de JsonCpp à libJson. JsonCpp a de bonnes fonctions pour déterminer le type d'objet d'une valeur json. Existe-t-il un moyen équivial d'obtenir cette information dans libjson?Déterminer le type d'objet JSONNode dans libjson

Par exemple, en utilisant JsonCpp nous avons les éléments suivants:

Json::Value property = properties[propertyName.get_utf8()]; 

if (property.isInt()) 
{ 
    // Do Something 
} 
else if (property.isUInt()) 
{ 
    // Do Something 
} 
else if (property.isDouble()) 
{ 
    // Do Something 
} 
else if (property.isString()) 
{ 
    // Do Something 
} 

Est-il possible de déterminer si un JSONNode a une chaîne, int ou double. Je sais que vous pouvez obtenir le type JSONNode, mais pouvez-vous obtenir le type d'objet pour la valeur dans ce nœud. Par exemple, si je donne les résultats suivants:

JSONNode root(JSON_NODE); 
node.push_back(JSONNode("", "node")); 
node.push_back(JSONNode("", 10)); 
node.push_back(JSONNode("", 21.5f)); 
node.push_back(JSONNode("", true)); 

Est-il possible de déterminer que le premier nœud racine contient une chaîne, le second un entier, le troisième un flotteur etc?

Répondre

0

La vérification du type semble être la seule façon de le faire, d'accord, elle n'est pas très précise car vous pouvez seulement vérifier si c'est un nombre, mais pas si c'est un entier de double.