2010-09-16 3 views
0

Obtenir des données correctes de JsonObject ..Obtenir des données correctes de JsonObject

Voici comment le jsonstring ressemble:

[ 
    { 
    "EditLink": "http:\/\/localhost:8080\/Service.svc\/A?format=json", 
    "Item": { "Value": "A" } 
    }, 
    { 
    "EditLink": "http:\/\/localhost:8080\/Service.svc\/B?format=json", 
    "Item": { "Value": "B" } 
    }, 
    { 
    "EditLink": "http:\/\/localhost:8080\/Service.svc\/C?format=json", 
    "Item": { "Value": "C" } 
    } 
] 

Comment est-il possible d'obtenir les valeurs seulement?

+1

Pouvez-vous élaborer? Avec quoi essayez-vous d'obtenir les valeurs? C#? Javascript? –

+0

Iam travaillant avec Java, – Troj

+0

Alors choisissez votre bibliothèque pour analyser le JSON, puis ... le reste est aussi facile que de faire un gâteau de boîte. Vous pouvez peut-être trouver une bibliothèque avec le support "sélecteur", ou bien ce sera simplement une traversée d'arbre simple le long de la structure ci-dessus. (Java n'est pas le langage le plus "compact" pour traiter les structures de données.) –

Répondre

1

Si vous souhaitez obtenir une collection de valeurs, vous pouvez écrire une routine pour le faire:

function getItems(jsonArray) { 
    var list = []; 

    for (var i = 0; i < jsonArray.length; i++) { 
     list.push(jsonArray[i].Item.Value); 
    } 

    return list; 
} 
+0

jsonArray [i] -> ne fonctionne pas dans java. – Troj

+0

Désolé, pensait JavaScript ... –

0

En utilisant Jackson 1.6, vous pouvez obtenir des valeurs comme ceci:

ObjectMapper mapper = new ObjectMapper(); 
JsonNode root = mapper.readTree(json); 
List<JsonNode> values = root.findValues("Value"); 
// or if you want values as String, use "findValuesAsText" to get List<String> 

et vous peut accéder à un type spécifique (nombre, booléen, etc) via des accesseurs JsonNode.

Questions connexes