json对象转换为java字符串

2023-11-29

我有这样的 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 不能 转换为 org.json.simple.JSONArray at Artajasa.Gateway.SubSystem.Process.RequestThread.run(RequestThread.java:636) 在 java.lang.Thread.run(Thread.java:745)

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


根据你的JSON结构和堆栈跟踪,header and body显然两者都是JSONObjects not JSONArray这就是为什么当您尝试将它们转换为时出现此错误JSONArray,尝试将它们投射为JSONObject而是如下:

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

建立一个JSONArray we use 方括号,检查这个simple JSON介绍更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json对象转换为java字符串 的相关文章

随机推荐

  • Codeigniter:标头已发送错误[重复]

    这个问题在这里已经有答案了 我有一个 CI 应用程序 它具有身份验证控制器和切换用户功能 基本上它所做的就是从 URI 中获取 ID 从 ID 中获取一些用户数据 分配一些会话数据 然后加载视图 function switch user i
  • 整个项目的行尾更改编辑器/应用程序

    我有一个由许多扩展组成的项目 这些扩展使用全部 3 种行结束类型 但服务器只能运行2个 我有一个编辑器可以更改打开文件中的行结尾 但我需要一些可以进行批量转换的应用程序 因为它大约有 10 000 个文件 有任何想法吗 谢谢你 例如 可以使
  • 无法理解如何在 1.6+ 中使用不同密度的图像?

    我试图了解 res drawables 图像如何在不同的屏幕密度下工作 现在我有一个 1 5 的应用程序 例如 我有一个 100x100 像素的图像 当在 Droid 上使用时 它会缩放该图像 使其在该设备上看起来具有相同的大小 所有其他布
  • Phonegap 应用程序:外部 URL 无法在 IOS 的应用内浏览器中打开

    外部 URL 无法在我的 PhoneGap IOS 应用程序的系统浏览器中打开 我正在使用 PhoneGap Build 2 7 0 JavaScript window open myURL blank location yes 配置文件
  • 使用 WHERE ... IN (...) 进行慢速 SQL 查询的替代方法

    这实际上是一个更大的复杂查询的一部分 根据查询计划 此语句的排序主导较大查询的成本 通过具体化查询的这一部分 我验证了它在成本中占主导地位 select sID ROW NUMBER over partition by sID order
  • 奇怪的 java 行为与原始类型的转换

    可能有人在某个地方问过这个问题 但我找不到它 有人可以澄清为什么这段代码会编译并打印出来吗1 long i byte char int long 1 System out println i 它被解析为 long i byte char i
  • Java 8 Stream 与批处理

    我有一个包含项目列表的大文件 我想创建一批项目 并使用该批次发出 HTTP 请求 所有项目都需要作为 HTTP 请求中的参数 我可以很容易地做到这一点for循环 但作为 Java 8 爱好者 我想尝试使用 Java 8 的 Stream 框
  • 与儿童一起使用 CCSprite 淡出

    我正在使用一个CCSprite和其他一些人CCSprite作为子对象添加的对象 我使用的其他动画 缩放和旋转 效果很好 并且子对象也有动画 但是当我使用时CCFadeOut 它只会淡化父级 我读到淡出不适用于儿童 除了迭代每个孩子并调用每个
  • 如何在asp.net中的preinit函数中访问Session?

    void Page PreInit Object sender EventArgs e HttpCookie userInfo userInfo Request Cookies userInfo Session EmpID userInfo
  • TPU本地文件系统不存在?

    我写了一个神经网络模型来分析图像并在最后提取 8 个浮点数 该模型在我的计算机上运行良好 但速度缓慢 因此我在 TPU 云上尝试它 然后砰 我有一个错误 I1008 12 58 47 077905 140221679261440 tf lo
  • Python 中带有两个条件的 if 语句

    我正在编写一个简单的控制台程序来帮助我自己和一些地质学同学进行岩石样本分析 我们的讲师为我们提供了一个流程图 有助于指定样本的特征 我正在尝试将其制作成控制台程序 我的问题是第 9 行的 if 语句是否可以接受两个条件 如果可以的话我写得正
  • 在 Angular 中渲染模板之前加载数据

    我在用角6并使用单向绑定 我在组件中的代码如下所示 ngOnInit this profile getUser 1 subscribe data gt this userData this compiler constructUserDat
  • 如何使用 Puppeteer 监听历史记录?

    使用Puppeteer 是否可以监听浏览器历史记录API 例如history pushState history replaceState or history popState 通常由单页应用程序框架路由器在幕后使用 例如react ro
  • 尝试安装模块 win32clipboard

    我是 python 新手 我正在尝试安装 win32clipboard 以便能够使用此代码 import win32clipboard win32clipboard OpenClipboard win32clipboard SetClipb
  • 在 .NET 中序列化 System.Drawing.Color

    我对具有 System Drawing Color 成员的类使用了默认的 NET 序列化 该代码现在已被人们使用 我需要向该类添加一个额外的成员 但仍反序列化旧版本 因此 我尝试了执行此操作的标准方法 ISerialized 接口 使用 S
  • 打印出的 html 页面上有水印

    https jsfiddle net dhaileytaha g92gr1sy 3 上面的小提琴有一个打印输出页 我需要在打印输出页上添加水印 我不知道我们该怎么做 js jquery css 或以上都不是 请帮忙 document get
  • CustomPicker 确定和取消按钮的颜色

    我在android项目中有这个custompicker类 public class CustomPickerRenderer PickerRenderer private Context context private IElementCo
  • python元组可以修改吗?

    我正在读入并解析一些数据 基本上 数据是一堆整数和字符串 所以我不能只使用列表来存储数据 每组数据中都会包含一定数量的项目 但有时会丢失一些项目 这是我所拥有的 users list of objects I ll be creating
  • Dockerfile 中是否需要“FROM”子句?

    对于我遇到的所有 Dockerfile 诚然不是很多 它们都使用了FROM基于现有图像的子句 即使它是FROM scratch 这个条款是必须的吗 是否可以有一个没有的 DockerfileFROM条款 这样创建的容器能做些什么吗 EDIT
  • json对象转换为java字符串

    我有这样的 json 文件 我想使用 org simple json 将 json 转换为字符串 header IssuerID 000141 AuthenticationID e07020c0d040a050a0808099 Authen