将java Servlet Map.toString响应转换为json

Turn java Servlet Map.toString response to json

本文关键字:转换 json 响应 toString java Servlet Map      更新时间:2023-09-26

我在将我的 servlet response转换为有效Json时遇到问题,这是返回的String

"key:gt,value:true, key:ht,value:false"

在 js 控制台中,输出是 key:gt,value:true, key:ht,value:false(不带 "" )。尝试了Regex和其他一些js功能,但我是一个后端人。我已经使用.replace(/('r'n|'n|'r)/gm,"")处理了换行符我不能使用其他Java库,如Gson,需要一个纯js或角度解决方案。这也应该对ng-repeat有效。这是我所能得到的:使用split(" ")substring(1,length-1)和添加'{' + '}'

["{key:gt,value:true}","{key:gt,value:true}"...]

但仍然不是一个徒劳的Json。

谢谢大家。

我认为没有一个优雅的解决方案来解决你的问题。理想情况下,您应该从服务器返回 JSON 响应(但我想您知道这一点)。

话虽如此,您说您尝试使用正则表达式收效甚微。这是一个可能的解决方案:

//Assuming your processed input string looks like this: key:gt,value:true";
var regexp = /key:([^,]+),value:([^,]+)/g;
var match = regexp.exec(myString);

"键"值将存储在match[1]中,"值"值存储在match[2]中。此解决方案仅适用于字符串值(您必须手动匹配和解析其他值),并且无法处理嵌套元素。如果我在你那里,我会尝试找到一种方法,使用库(最好)或手动(容易出错)在您的服务器上生成 JSON 并使用JSON.parse()来获取值。