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用作字符串生成器。也许你可以在客户端解析消息?你能举一些例子说明如何在客户端解析消息吗?因为我不能使用字符串