Java 无法拆分json响应?

Java 无法拆分json响应?,java,json,Java,Json,这是我的方法 public String buildJsonData(String username , String message) { JsonObject jsonObject = Json.createObjectBuilder().add("Username",username+":"+message).build(); StringWriter stringWriter = new StringWriter(); try(JsonWriter jso

这是我的方法

   public String buildJsonData(String username , String message)
    {
   JsonObject jsonObject = Json.createObjectBuilder().add("Username",username+":"+message).build();
   StringWriter stringWriter = new StringWriter();
   try(JsonWriter jsonWriter = Json.createWriter(stringWriter))
   {
  jsonWriter.write(jsonObject);
  }
  catch(Exception e)
  {
System.out.print("buildJsonData ="+e);
   }
  return stringWriter.toString();
   }
如果我将用户名输入为
john
,消息输入为
hello
,则输出为

{“用户名”:“约翰:你好”}

但是我想要不带大括号和双引号的输出我想要我的输出

约翰:你好


我试图使用数组[0]拆分它,但没有得到输出。在json中是否可以得到我想要的输出(没有大括号和引号)。

您的结构不是真正的json

json结构类似于

{
    Username : "John",
    Message : "Hello"
}
Anf如果您真的想使用JSON,没有办法删除大括号和引号。这是Json

如果只想输出引用的部分,请将json值存储在变量中

String myoutput = stringWriter.toString();

然后用replace()或regexp删除不需要的部分。大括号是JSON符号的一部分,它们表示一个对象。如果删除它们,那么它就不再是JSON了。双引号也是如此。您正在创建JSON对象,如下所示:

Json.createObjectBuilder().add("Username",username+":"+message)
这将创建一个名为
Username
的属性和值为
john:hello
的对象。同样,这是JSON符号。它不是为了直接读取,而是为了促进应用程序之间的数据传输(在相同或不同的设备上)

如果您只想创建
john:message
,那么不需要创建JSON对象,只需执行以下操作:

String result = username + ":" + message;
return result;

在发送端,您可以将用户名和消息实体放入JSONObject中,并通过网络发送结果字符串

在接收端,您将解组JSON以提取实体。然后,您可以按照自己的喜好对其进行格式化

请阅读JSON编码

这是一个简单的例子:

private String getResponse(){

JSONObject json = new JSONObject();
try {

    json.put("Username", "John");
    json.put("Message", "Hellow");
} catch (JSONException e) {

    e.printStackTrace();
}
return json.toString();
}

private void receiver(){
try {
    JSONObject response = new JSONObject(getResponse());
    String username = response.getString("Username");
    String message = response.getString("Message");
    System.out.println(String.format("%s : %s", username,message));

} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

}

如果您不希望结果是Json格式的,为什么要将其写为Json?@Davz我正在制作一个聊天应用程序,为此我需要Json。@TruePS您似乎不理解Json是什么。或者别的什么。你说你需要JSON,然后问如何。。。不生成JSON。。。使用JSON库。@TruePS否,您不需要使用JSON。您选择使用它时,并没有真正了解它是什么以及如何使用它。@TruePS如果您必须使用JSON,我建议你从学习它是什么以及如何使用它开始。我是通过参数来做这件事的。因为某些原因,我只能写JSOn对象,这就是为什么我不可能将它转换成无法工作的字符串。你必须使用JSOn,只需使用JSOn。不能将JSON用作字符串生成器。也许你可以在客户端解析消息?你能举一些例子说明如何在客户端解析消息吗?因为我不能使用字符串