gpt4 book ai didi

java - json对象转换为java字符串

转载 作者:行者123 更新时间:2023-11-30 02:44:46 25 4
gpt4 key购买 nike

我有这样的 json 文件,我想使用 org.simple.json 将 json 转换为字符串

{
"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"
}
}

当我使用此脚本进行转换时

    //  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);
}

我遇到这样的错误

java.lang.ClassCastException: org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray at Artajasa.Gateway.SubSystem.Process.RequestThread.run(RequestThread.java:636) at java.lang.Thread.run(Thread.java:745)

当我在标题和正文前面添加 [ ] 时,我得到了正确的结果,我的问题是它不是 json 数组插入的 json 对象任何人都可以给我解决方案

最佳答案

根据您的 JSON 结构和堆栈跟踪,headerbody 显然都不是 JSONObject JSONArrays 这就是当您尝试将它们转换为 JSONArray 时收到此错误的原因,请尝试将它们转换为 JSONObject 而不是下一个:

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

要构建 JSONArray,我们使用方括号,请检查此 simple JSON introduction了解更多详情。

关于java - json对象转换为java字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40522473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com