我想从String类型的一些关键值中创建一个简单的json,其值为utf-8但是在连接方向和连接结构之后非常损坏
public static void main(String[] args) {
int k1=1;
int k2=2;
int k3=3;
String v1="مقدار1";
String v2="مقدار2";
String v3="مقدار3";
javax.swing.JOptionPane.showMessageDialog(null, "{\""+k1+"\":\""+v1+"\",\""+k2+"\":\""+v2+"\",\""+k3+"\":\""+v3+"\"}");
System.out.println("Json that created:\r\n"+
"{\""+k1+"\":\""+v1+"\",\""+k2+"\":\""+v2+"\",\""+k3+"\":\""+v3+"\"}");
}
正确的结果必须是:{“1”:“مقدار3”:“3”,“مقدار2”:“2”,“مقدار1”}
如果你在链接中运行它,你会发现这是不正确的!
但也许这就是控制台的原因,如果你在摆动组件上看到它,你会看到方向反之亦然(RtL)但没有损坏
在json结构中,第一个输入始终是键,不应该通过UTF-8方向来改变它
也许你的快速解决方案是首先增加价值然后键,但我也有英语单词,我想有一个标准的方法,不再有问题
我如何通过这些三键(k1,k2,k3)和值(v1,v2,v3)来解决这个问题并制作正确的json结构?
答案 0 :(得分:0)
当您从左到右和从右到左的方向打印混合的字符时,似乎控制台会感到困惑。
如果你构建字符串
.wrapper {
background-color: #50C5B7;
padding: 5px;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.image {
width: 100%;
height: auto;
}
.one-half {
width:48%;
margin-right: 4%;
background-color: lightgrey;
display: inline-block;
box-sizing: border-box;
}
.vertical-align {
flex-item-align: center;
-webkit-align-self: center;
-ms-flex-item-align: center;
align-self: center;
}
.last {
margin-right: 0;
clear:both;
}
并打印出其字符:
String json = "{\""+k1+"\":\""+v1+"\",\""+k2+"\":\""+v2+"\",\""+k3+"\":\""+v3+"\"}";
你看到你确实构建了正确的字符串。在控制台视图中调试并不容易。
答案 1 :(得分:0)
这是控制台(甚至是swing组件)的原因,当我创建json并将其发送给客户端时(认为这是一个ajax请求/响应,客户端是一个JavaScript代码),js对json结构起到了很好的作用,那里没有任何问题