【问题标题】:How to parse more then one JSON from TCP/IP server?如何从 TCP/IP 服务器解析多个 JSON?
【发布时间】:2019-11-12 00:15:11
【问题描述】:

如何解析多个以空字符结尾的 JSON(通过套接字 TCP/IP)。

{"ObjectID":"UHJvY1dpcmVsZXNzTXNn","DeviceCode":"RUNEOjI=","ActiveInputNames":"Q2hlY2sgaW4gRmFpbA==","DeviceInputNo":"999999","Activation":false,"Reset":true,"LocationID":"","LocationGroupText":"","ProtocolText":"","CallBackNo":"OTE5MTgyNTcyMjQ5"}��{"ObjectID":"VFBpbmdPYmplY3Q="}��

如您所见,上面的响应有 2 个 JSON,每个都以空字符结尾...我可以轻松解析单个 JSON 但无法解析多个JSON..

如果有人提出任何解决方案,那就太好了!

【问题讨论】:

  • 你能用空字符分割字符串吗?
  • @AntoineF 但是我们必须检查每个字符(直到我们得到空值)才能拆分字符串,对吗?如果我收到较大的 JSON,可能会更耗时
  • 如果你在谈论 Java,它并不关心字符串的空终止。

标签: android sockets tcp


【解决方案1】:

您可以使用�� 拆分json字符串并循环遍历数组:

String s = "{\"ObjectID\":\"UHJvY1dpcmVsZXNzTXNn\",\"DeviceCode\":\"RUNEOjI=\",\"ActiveInputNames\":\"Q2hlY2sgaW4gRmFpbA==\",\"DeviceInputNo\":\"999999\",\"Activation\":false,\"Reset\":true,\"LocationID\":\"\",\"LocationGroupText\":\"\",\"ProtocolText\":\"\",\"CallBackNo\":\"OTE5MTgyNTcyMjQ5\"}��{\"ObjectID\":\"VFBpbmdPYmplY3Q=\"}��";
            String[] array = s.split("��");
            for (String string: array){
                try {
                    JSONObject json = new JSONObject(string);
                    //do what ever you want with this
                } catch (JSONException e) {
                    Log.e("Error",Log.getStackTraceString(e));
                }
            }

【讨论】:

  • 谢谢你的回答,我会照着做的!
  • @MorrisonDanny 很高兴它有帮助。请点击勾选图标接受答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
  • 2011-01-18
  • 2014-01-02
  • 2012-07-09
  • 1970-01-01
相关资源
最近更新 更多