我想从字符串类型的一些键值中制作一个简单的 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:rn"+
"{""+k1+"":""+v1+"",""+k2+"":""+v2+"",""+k3+"":""+v3+""}");
}
https://ideone.com/j0Vd7s
正确的结果必须是这样的: { "1" : "مقدار3" : "3" , "مقدار2" : "2" , "مقدار1" }
如果您在链接中运行它,您会看到这是不正确的!
但也许这就是控制台的原因,如果您在摆动组件上看到它,您会看到方向反之亦然(RtL)但没有损坏
在 JSON 结构中,第一个输入始终是关键,不应通过 UTF-8 方向
更改它也许您的快速解决方案是首先增加价值然后键,但我也有英语单词,我想有一种标准的方式来不再遇到问题
我如何解决这个问题并通过这些三重键(K1,K2,K3)和值(v1,v2,v3)制作正确的JSON结构?
当您打印具有从左到右和从右到左方向性的字符混合时,控制台似乎会感到困惑。
如果生成字符串
String json = "{""+k1+"":""+v1+"",""+k2+"":""+v2+"",""+k3+"":""+v3+""}";
并打印出其字符:
for (int i=0; i<json.length(); i++)
System.out.println(json.charAt(i));
您会看到您确实构建了正确的字符串。在控制台视图中调试并不容易。
控制台(甚至是 Swing 组件)的原因,当我创建 JSON 并将其发送到客户端时(认为这是一个 ajax 请求/响应,客户端是一个 JavaScript 代码),js 对 JSON 结构工作得很好,没有任何问题