Это моя строка
{Line:1,Direction:incoming,LocalUsername:xxx,AuthUsername:31223,PeerUsername:04232000113,Name:04232000113,Server:23424,Connectime:2189msec,Duration:0msec,DiscBy:Remote,Reason:cancelNormalcallclearing}
я хочу преобразовать его в строку json
{"Line":"1","Direction":"incoming","LocalUsername":"xxx","AuthUsername":"31223","PeerUsername":"04232000113","Name":"04232000113","Server":"23424","Connectime":"2189msec","Duration":"0msec","DiscBy":"Remote"}
Поскольку он не вложен, просто добавьте "
вокруг :
и ,
, а также после {
и перед }
:
s = s.replaceAll("(?<=[{:,])|(?=[:,}])", "\"");
Смотрите демо на regex101.com.
Попробуйте использовать библиотеку Gson
Gson g = new Gson();
Player p = g.fromJson(jsonString, Player.class)
Вы также можете преобразовать объект Java в JSON, используя метод toJson(), как показано ниже.
String str = g.toJson(p);
Если у вас нет POJO, представляющего данные, обычно это можно сделать с помощью JsonElement
.
Демо
String input = "{Line:1,Direction:incoming,LocalUsername:xxx,AuthUsername:31223,PeerUsername:04232000113,Name:04232000113,Server:23424,Connectime:2189msec,Duration:0msec,DiscBy:Remote,Reason:cancelNormalcallclearing}";
Gson g = new Gson();
JsonElement root = g.fromJson(input, JsonElement.class);
String result = g.toJson(root);
System.out.println(result);
Выход
{"Line":1,"Direction":"incoming","LocalUsername":"xxx","AuthUsername":31223,"PeerUsername":"04232000113","Name":"04232000113","Server":23424,"Connectime":"2189msec","Duration":"0msec","DiscBy":"Remote","Reason":"cancelNormalcallclearing"}