2016-11-10 5 views
1

ich JSON-Datei wie diese haben und ich von json string umwandeln möchten org.simple.json mitJSON-Objekt konvertieren String java

{ 
    "header": 
     { 
     "IssuerID": "000141", 
     "AuthenticationID": "e07020c0d040a050a0808099", 
     "AuthenticationDateTime": "20151103093035", 
     "AuthenticationDateTimeGMT": "20151103093035", 
     "Signature": "MThEMTExQkMzQzM0OUIxQjM5MDc2MjFGMzMyQjhDNTk1OTI0NDNERTg5ODcwQjNFOTc0ODQwNThBNkQxNTgzNTk2N0YzN0I2OTkyMzI1QjY2OENDQjgxRUNERDlGNDFDNzVCMzQ5Njg5NTY4NzkwNUQ5MzBDN0ExOTVGOUY0OUY2QjlCQzlDQkREOEQ3NjEzRkQ2OEYyMDhEQTY2QTkzNUZDM0UzOTI3RDk2OTYwODg4NTkyNzYyQUJCQkJFREZGNzNCNEEyNUU5OTc5OTFFODk2MTQ0Q0Y4Q0RGNzg1M0JBQTM4QkZBQzRFRUY2MTkzM0E4REI3QkQ0MEJBRkU4OTlEOTVDNTkxOTQ0M0IwNjMyMzZDQ0U4MzdBQTQzODU3RkMyOEQ0Rjk2NUMyRkNERUM0NDREQkIzNUM0QUVERDUzRjFBOTk5RTQ4Mjk4MzNERjU3RTQ1QUE2Nzc4MDUyRTdERTdGRTVFRURGRkVGMTlFN0Y2QTAyQTVCNjk3NUU2OUNGRUU3MzRGNDZDOTE0Q0U3NTk5NzdGNDkyOTdFQkRGREIwNDBCNDhBQTkzMzE1QjU0MzI1Njk0MjgxMjVDMzM5OUM3MTExNTg4NENBOTU3QTM4OTU5MTY5OTQ1NkQ2NDNFOUVEMjU5MjRDNzhEMDQxMEJGM0ZEQUVFM0Y1QTU=" 
     }, 

    "body": 
     { 
     "TransactionDateTime": "0151103093035", 
     "TransactionID": " SP020110216", 
     "IASauthenticationRequestReferenceID": "h0IrqhqBoUpUCiSv17NB0vHvABIUxHGCurJZFzUWdZJz9TxYio", 
     "VerificationID": "h0IrqhqBoUpUCiSv17NB0vHvABIUxHGCurJZFzUWdZJz9TxYio ", 
     "Acquirer_id": "000014", 
     "MerchantName": " Twin Hotel ", 
     "CurrencyCodeISO": "360", 
     "Amount": "970000.00", 
     "CardNumber": " BmaHLuFRg4SaPnaGB07t5fNrHXr/lyOa ", 
     "AuthenticationResponseCode": "00", 
     "AuthenticationResponseDetails": "Success", 
     "ValidityDateTimeExpireGMT": "20151103094035", 
     "Expiry_Period": "10" 
     } 
} 

Wenn ich dieses Skript konvertieren mit

// json parser array untuk extract json ke string 
JSONParser parser = new JSONParser(); 
Object obj = parser.parse(input); 
JSONObject jsonObject = (JSONObject) obj; 

JSONArray msg = (JSONArray) jsonObject.get("header"); 
//JSONArray array = new JSONArray(); 
//array.add("header"); 
Iterator<JSONObject> iterator = msg.iterator(); 
       System.out.println("Header ");  
while (iterator.hasNext()) { 
JSONObject factObj = (JSONObject) iterator.next(); 
    IssuerID = (String) factObj.get("IssuerID"); 
System.out.println("Issuer ID : " + IssuerID); 

    AuthenticationID = (String) factObj.get("AuthenticationID"); 
System.out.println("AuthenticationID : " +AuthenticationID); 

    AuthenticationDateTime = (String) factObj.get("AuthenticationDateTime"); 
System.out.println("Authentication Date Time : " + AuthenticationDateTime); 

    AuthenticationDateTimeGMT = (String) factObj.get("AuthenticationDateTimeGMT"); 
System.out.println("AuthenticationDateTimeGMT : " + AuthenticationDateTimeGMT); 

Signature = (String) factObj.get("Signature"); 
System.out.println("Signature : " + Signature); 
} 
    //loop array 
JSONArray msg1 = (JSONArray) jsonObject.get("body"); 

       System.out.println("Body"); 
Iterator<JSONObject> iterator1 = msg1.iterator(); 

while (iterator1.hasNext()) { 
JSONObject factObj = (JSONObject) iterator1.next(); 

TransactionDateTime = (String) factObj.get("TransactionDateTime"); 
System.out.println("Transaction DateTime: " + TransactionDateTime); 

TransactionID = (String) factObj.get("TransactionID"); 
System.out.println("Transaction ID : " + TransactionID); 

    IASauthenticationRequestReferenceID = (String) factObj.get("IASauthenticationRequestReferenceID"); 
System.out.println("IASauthenticationRequestReferenceID : " + IASauthenticationRequestReferenceID); 

    VerificationID = (String) factObj.get("VerificationID"); 
System.out.println("VerificationID : " + VerificationID); 


Acquirer_id= (String) factObj.get("Acquirer_id"); 
System.out.println("Acquirer id : " + Acquirer_id); 

    MerchantName = (String) factObj.get("MerchantName"); 
System.out.println("Merchant Name: " + MerchantName); 

CurrencyCodeISO = (String) factObj.get("CurrencyCodeISO"); 
System.out.println("CurrencyCodeISO : " + CurrencyCodeISO); 

Amount = (String) factObj.get("Amount"); 
System.out.println("Amount : " + Amount); 

CardNumber= (String) factObj.get("CardNumber"); 
System.out.println("Card Number : " + CardNumber); 

    AuthenticationResponseCode = (String) factObj.get("AuthenticationResponseCode"); 
System.out.println("Authentication Response Code: " + AuthenticationResponseCode); 

    AuthenticationResponseDetails = (String) factObj.get("AuthenticationResponseDetails"); 
System.out.println("Authentication Response Detail : " + AuthenticationResponseDetails); 

    ValidityDateTimeExpireGMT = (String) factObj.get("ValidityDateTimeExpireGMT"); 
System.out.println("Validity DateTime Expire GMT : " + ValidityDateTimeExpireGMT); 

    Expiry_Period = (String) factObj.get("Expiry_Period"); 
System.out.println("Expiry Period : " + Expiry_Period); 
} 

i erhielt Fehler wie dieser

java.lang.ClassCastException: org.json.simple.JSONObject nicht gegossen werden kann ein org.json.simple.JSONArray t Artajasa.Gateway.SubSystem.Process.RequestThread.run (RequestThread.java:636) bei java.lang.Thread.run (Thread.java:745)

wenn i hinzufügen, [] vor header und Körper bekam ich das richtige Ergebnis, mein Problem ist es json Objekt kann mir jemand geben Lösung

+0

'JSONArray msg = (JSONArray) jsonObject.get (" header ");' header ist kein Array –

Antwort

1

nach Ihrer JSON Struktur und Ihren Stack-Trace, header und body sind beide offensichtlich JSONObject s nicht JSONArray s nicht json Array ist insted Aus diesem Grund erhalten Sie diesen Fehler, wenn Sie versuchen, sie als JSONArray zu werfen, versuchen, sie alszu werfenstattdessen als nächstes:

JSONObject msg = (JSONObject) jsonObject.get("header"); 
... 
JSONObject msg1 = (JSONObject) jsonObject.get("body"); 

ein bauen JSONArray wir eckigen Klammern verwenden, überprüfen Sie diese simple JSON introduction für weitere Details.

+0

danke nicolas filotto ich habe es jetzt – priatna

Verwandte Themen