可以按照以下步骤来实现:

  1. 使用json库解析原始字符串,将其转换为json对象。

  2. 遍历json对象中的每个元素,获取元素的名称和值,并根据名称的不同,将值转换为相应的值。

  3. 将转换后的结果存储在新的json对象中,并将其转换为字符串返回。

具体实现代码如下:

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class Main {

    public static void main(String[] args) {
        String input = "[{\"Name\":\"B1_FJ_1.DI1\",\"Value\":\"False\",\"Quality\":true},{\"Name\":\"B1_FJ_1.DI2\",\"Value\":\"False\",\"Quality\":true},{\"Name\":\"B1_FJ_1.DI4\",\"Value\":\"\",\"Quality\":false},{\"Name\":\"B1_FJ_1.CO\",\"Value\":\"\",\"Quality\":false},{\"Name\":\"B1_FJ_1.DI3\",\"Value\":\"\",\"Quality\":false}]";

        try {
            JSONArray jsonArray = new JSONArray(input);

            JSONObject outputJson = new JSONObject();

            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);

                String name = jsonObject.getString("Name");
                String value = jsonObject.getString("Value");

                switch (name) {
                    case "B1_FJ_1.DI1":
                        outputJson.put("DI1", value.equals("True") ? 1 : 0);
                        break;
                    case "B1_FJ_1.DI2":
                        outputJson.put("DI2", value.equals("True") ? 1 : 0);
                        break;
                    case "B1_FJ_1.DI3":
                        outputJson.put("DI3", value.equals("True") ? 1 : 0);
                        break;
                    case "B1_FJ_1.DI4":
                        outputJson.put("DI4", value.equals("True") ? 1 : 0);
                        break;
                    case "B1_FJ_1.CO":
                        outputJson.put("CO", value.equals("") ? 3 : Integer.parseInt(value));
                        break;
                }
            }

            String output = outputJson.toString();
            System.out.println(output);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

}

运行结果:

{"CO":3,"DI1":0,"DI2":0,"DI3":0,"DI4":0}
``
如何使用java代码把string类型 NameB1_FJ_1DI1ValueFalseQualitytrueNameB1_FJ_1DI2ValueFalseQualitytrueNameB1_FJ_1DI4ValueQualityfalseNameB1_FJ_1COValueQualityfalseNameB1_FJ_1DI3ValueQualityfalse转化为 下面 string类型 D

原文地址: https://www.cveoy.top/t/topic/hlxb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录