[英]Unable to split json response?
这是我的方法
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
。我得到的输出为
{“用户名”:“约翰:你好”}
但我想要没有大括号和双引号的输出我想要我的输出
约翰:你好
我尝试使用 array[0] 拆分它,但没有得到输出。是否有可能在 json 中得到我想要的输出(没有大括号和引号)。
您的结构并不是真正的 JSON。
一个 json 结构会像
{
Username : "John",
Message : "Hello"
}
Anf 如果您想真正使用 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;
在发送端,您可以将 Username 和 Message 实体放入 JSONObject 并通过网络发送结果字符串。
在接收端,您将解组 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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.