【问题标题】:How to convert string of the form {a=2 ,b=5} to JSON of the form {"a":2 , "b":5} in java?如何在 java 中将 {a=2 ,b=5} 形式的字符串转换为 {"a":2 , "b":5} 形式的 JSON?
【发布时间】:2018-06-21 15:25:01
【问题描述】:

在拼写表达式评估后,我得到了 {a=2 ,b=5} 形式的结果。 我想将其转换为 json。 我该怎么做? 请帮忙!

【问题讨论】:

  • 你不能在问这里之前至少自己做一些研究吗?
  • 你试过什么?你做过研究吗?(提示:google 很有帮助)这不是编码服务。
  • {a=2 ,b=5} 甚至不是有效的 JSON。你最初是怎么得到它的?
  • 请参阅:What is the XY problem? 解决方案不是将第一个字符串转换为第二个字符串 - 显然,首先生成 {a=2 ,b=5} 的任何代码都有一个错误。只需修复错误以从一开始就生成正确的结果。
  • @EJoshuaS,输入的数据不是 JSON,OP 想把它 JSON。

标签: java json


【解决方案1】:

这是您的解决方案:

public static void main(String[] args) {

    String something = "{a=2 ,b=5}";
    something = something.replace("{", "");
    something = something.replace("}", "");

    String[] pairs = something.split(",");
    ArrayList<String> list = new ArrayList<String>();

    for (String pair : pairs) {
        list.add(pair);
    }

    for (int i = 0; i < list.size(); i++) {
        String[] temp = list.get(i).split("=");
        temp[0] = "\"" + temp[0] + "\"";
        list.set(i, temp[0] + ":" + temp[1]);
    }
    String contents = "";
    for (int i = 0; i < list.size(); i++) {
        contents = contents + ", " + list.get(i);
    }

    contents = contents.replaceFirst(", ", "");

    contents = "{" + contents + "}";

    System.out.println("Contents: " + contents);
}

这是你的结果:

Contents: {"a":2 , "b":5}

【讨论】:

  • 我不同意这一点。 OP 显示的字符串甚至不是有效的 JSON 的事实表明,首先生成字符串的任何代码都存在错误。他应该解决这个问题,而不是事后转换字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多