Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改JSONArray中某些键的名称_Java_Arrays_Json - Fatal编程技术网

Java 更改JSONArray中某些键的名称

Java 更改JSONArray中某些键的名称,java,arrays,json,Java,Arrays,Json,我有一个HTTP请求作为JSONArray的响应。json响应中的值有一些键,它们的名称是Total\u x200\u Price或Creation\u x200\u Date(即具有“x200”)而不是每个空格。所以我的程序找不到这些数据。我需要更改这些字段的键,用“”替换“x200”,例如 .replaceAll("_x0020_"," "); 是否有一种干净的Java方法迭代JSON键并将其应用于每个键 org.json.JSONArray i、 e我的json如下所示 [ {nam

我有一个HTTP请求作为JSONArray的响应。json响应中的值有一些键,它们的名称是
Total\u x200\u Price
Creation\u x200\u Date
(即具有“x200”)而不是每个空格。所以我的程序找不到这些数据。我需要更改这些字段的键,用“”替换“x200”,例如

.replaceAll("_x0020_"," ");
是否有一种干净的Java方法迭代JSON键并将其应用于每个键

org.json.JSONArray

i、 e我的json如下所示

[
  {name: "selim", Creation_x200_Date: "1/2/2010"},
  {name: "JOhn", Creation_x200_Date: "1/6/2010"}
]
我需要申请每一把这样名字的钥匙。我试着切换到字符串和返回,但太慢了?还有更好的主意吗

所以我的程序找不到这些数据

手动替换字符串不是解决方案

我尝试解析这个,得到了输出创建日期正确

见下文


这是我认为您需要的。它正在创建一个新的org.json.JSONArray。尽管如此,如果我的想法正确的话,您很可能会使用
JSONArray jarr=new-JSONArray(responceBodyString)来生成HTTP响应JSONArray如果它是正确的,那么我想用
JSONArray jarr=newjsonarray(responceBodyString.replaceAll(“x200,”)替换上面的行将更有效

    String jsonString = "[{name: \"selim\", Creation_x200_Date: \"1/2/2010\"}, {name: \"JOhn\", Creation_x200_Date: \"1/6/2010\"}]";
    JSONArray originalJArray = new JSONArray(jsonString);
    JSONArray jsonArrayWithSpaces = new JSONArray();
    for (int i = 0; i < originalJArray.length(); i++)
    {
        JSONObject jobj = originalJArray.getJSONObject(i);
        @SuppressWarnings("unchecked")
        Iterator<String> keysItr = jobj.keys();
        JSONObject jobj1 = new JSONObject();
        keysItr.forEachRemaining(new Consumer<String>()
        {
            @Override
            public void accept(String t)
            {
                try
                {
                    jobj1.put(t.replaceAll("_x200_"," "), jobj.get(t));
                }catch (JSONException e){e.printStackTrace();}
            }
        }
        );
        jsonArrayWithSpaces.put(jobj1);
    }
    System.out.println(jsonArrayWithSpaces);
String jsonString=“[{name:\”selim\,创建日期:\“1/2/2010\”},{name:\“JOhn\”,创建日期:\“1/6/2010\”}”;
JSONArray originalJArray=新的JSONArray(jsonString);
JSONArray jsonArrayWithSpaces=新的JSONArray();
for(int i=0;i
首先迭代json数组,然后按照上图所示的@Selim Alawwa尝试解析json。如果您得到了答案,请将其标记为答案,因为它将对其他面临相同问题的人有用。