package com.seeyon.apps.src_flowIntegration.util;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class FieldUtil {

    /**
     * 检查JSON字符串中是否存在指定的display字段值
     * @param jsonStr 待检查的JSON字符串
     * @param targetDisplay 要查找的display内容
     * @return true=存在，false=不存在
     */
    public static String isDisplayExists(JSONObject jsonStr, String targetDisplay) {
        // 空值校验：避免空指针异常
        if (jsonStr == null || jsonStr.isEmpty() || targetDisplay == null || targetDisplay.isEmpty()) {
            return "";
        }
        try {
            // 1. 解析JSON字符串为JSONObject对象
//            JSONObject rootObj = JSON.parseObject(jsonStr);
            // 2. 获取fieldInfo数组（如果不存在返回空数组，避免空指针）
            JSONArray fieldInfoArray = jsonStr.getJSONArray("fieldInfo");
            if (fieldInfoArray == null || fieldInfoArray.isEmpty()) {
                return "";
            }
            // 3. 遍历fieldInfo数组中的每个对象
            for (int i = 0; i < fieldInfoArray.size(); i++) {
                JSONObject fieldObj = fieldInfoArray.getJSONObject(i);
                if (fieldObj == null) {
                    continue; // 跳过空对象
                }
                // 4. 获取display字段值（如果字段不存在返回空字符串）
                String displayValue = fieldObj.getString("display");
                // 5. 比对目标值（区分大小写）
                if (targetDisplay.equals(displayValue)) {
                    return fieldObj.getString("name"); // 找到匹配值，立即返回对应name数据
                }
            }
        } catch (Exception e) {
            // 捕获JSON解析异常，打印日志并返回false
            System.err.println("FastJSON解析出错: " + e.getMessage());
            e.printStackTrace();
        }
        // 遍历结束未找到匹配值
        return "";
    }

}
