如何使用java代码把string类型 NameB1_FJ_1DI1ValueFalseQualitytrueNameB1_FJ_1DI2ValueFalseQualitytrueNameB1_FJ_1DI4ValueQualityfalseNameB1_FJ_1COValueQualityfalseNameB1_FJ_1DI3ValueQualityfalse转化为 下面 string类型 D
可以按照以下步骤来实现:
-
使用json库解析原始字符串,将其转换为json对象。
-
遍历json对象中的每个元素,获取元素的名称和值,并根据名称的不同,将值转换为相应的值。
-
将转换后的结果存储在新的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}
``
原文地址: https://www.cveoy.top/t/topic/hlxb 著作权归作者所有。请勿转载和采集!