服务器(Java)将Json String发送到客户端(TypeScript)。在客户端,我得到以下内容:
因此,JSON.parse()
因附加问号而失败。
我试过了:
似乎没有任何东西可以删除它们。
我的代码:
public class objectOutput {
static int i=0;
ObjectOutputStream objectOutputStream;
public objectOutput(HttpServletResponse response) throws IOException {
response.setContentType("application/octet-stream");
objectOutputStream = new ObjectOutputStream(response.getOutputStream());
}
// Using this method to write a Json String
public void writeObject(Object object) throws IOException {
objectOutputStream.writeObject(object);
objectOutputStream.close();
objectOutputStream.flush();
}
}
答案 0 :(得分:1)
基本上,如果您只是尝试发送文字,则不应该使用ObjectOutputStream
。这不是它的用途。 ObjectOutputStream
以Java特定格式执行二进制序列化,任意可序列化对象。它只应在代码读取数据时使用ObjectInputStream
时使用。
在这种情况下,您可能只需拨打response.getWriter()
,或者自己在OutputStreamWriter
周围创建一个response.getOutputStream()
。 (此处通常首选使用getWriter()
- 该调用的重点是为文本响应创建一个编写器。)
内容类型与此问题无关,但you should probably change that to application/json
。
答案 1 :(得分:-1)
您可以尝试使用json格式,如下所示:
public class objectOutput {
static int i=0;
PrintWriter pw;
public objectOutput(HttpServletResponse response) throws IOException {
response.setContentType("application/json");
pw = response.getWriter();
}
// Using this method to write a Json String
public void writeObject(Object object) throws IOException {
pw.print(object);
pw.flush();
pw.close();
}
}