2011-08-30 3 views
0

J'ai un petit problème avec la compréhension de ce trop de lignes de code en Objective-C:données Java Objective-C Json

id jsonData; 
NSInteger errorCode; 
NSString* errorString; 
errorCode = [jsonData sqlInt:@"error_code"]; 
errorString = [[jsonData objectForKey:@"error_string"] retain]; 

J'essaie de trouver un moyen comment faire le même code en Java, C'est pourquoi j'ai besoin d'un peu d'aide pour comprendre ce morceau de code. Merci d'avance !!!

EDIT: Est-ce que ce code fait la même chose que dans Objective C? :

ErrorCode = new JSONObject(); 
    ErrorCode.put("error_code", errorCode); 
    ErrorString = new JSONObject(); 
    ErrorString.put("error_string", errorString); 
+0

quelle bibliothèque json utilisez-vous pour Java? –

+0

Actuellement, j'utilise la bibliothèque json pour la version Android dans le SDK Android. –

+0

aussi à quoi ressemble votre json? –

Répondre

1

Essayez ceci,

SBJSON *jsonData = [SBJSON alloc]init]; - Objective c 

private JSONObject jObject; - Java 

// vous obtenez une des données JSON - Objectif C

NSDictionary *errorString = [[jsonData objectForKey:@"error_string"] retain]; 

Pour Java -

jObject = new JSONObject(errorString); 

JSONArray menuitemArray = popupObject.getJSONArray("error_string"); 

String attributeValue = jObject.getString("value"); 

System.out.println(attributeValue); 
+0

Qu'en est-il de errorCode ... comment puis-je obtenir int, pas seulement String? –

+0

@Bombastic: Hé vous devez obtenir les données en premier de l'URL de source de données référence votre code c objectif, puis essayez ce lien pour obtenir une réponse java String puis proceeed aux étapes que j'ai écrit ci-dessus. http://androidmaterial.blogspot.com/2011/08/json-parsing-in-android.html – Karthikeyan

+0

est-ce l'équivalent du code que j'ai ajouté dans ma question? –

1

On peut supposer que votre jsonData est un dictionnaire de quelque sorte, et sans doute sqlInt est soit une extension "category" de NSDictionary, soit une méthode de classe de dictionnaire personnalisée utilisée par l'analyseur JSON. De son nom, il prend un élément nommé quelconque et renvoie sa représentation int.

Vous avez donc deux éléments dans votre dictionnaire, l'un nommé "error_code" et l'autre nommé "error_string". "chaîne_erreur" peut simplement être extrait dans une chaîne, mais "code_erreur" est un objet entier ou une représentation chaîne d'un entier - ne peut pas dire lequel de votre code (mais vous pouvez le dire en regardant la source JSON - Une valeur entière ne sera pas entourée de guillemets, mais une valeur de chaîne sera).

+0

En fait, je n'ai que ce code jsonData ..la déclaration et le code similaire à errorCode = [jsonData sqlInt: @ "error_code"]; .Rien de plus. –

+0

Vous pouvez, bien sûr, tester le type d'élément que vous recevez. (Notez que le code Objective-C que vous avez est pour l'analyse des données reçues, même si votre Java est apparemment pour la construction d'une nouvelle chaîne JSON.) –