终端(PLC)上传数据到 JSON 字符串的转换适配器c#类

在我的plc上位机项目中,需要将 PLC 采集到的各种类型数据,统一转换为 JSON 接口需要的字符串格式,确保:

  • 数值格式固定(不受服务器区域影响)

  • 布尔值统一为 true/false(而非 True/False1/0

  • 字符串原样传递

那么就可以使用下面这个简单封装的类

cs 复制代码
 /// <summary>
        /// 将采集到的 CLR 值转为上传用字符串(数字用不变区域格式,布尔为 true/false)。
        /// </summary>
        public static string ValueToString(object val)
        {
            if (val == null)
                return string.Empty;
            if (val is bool)
                return (bool)val ? "true" : "false";
            if (val is string)
                return (string)val;
            IFormattable fmt = val as IFormattable;
            if (fmt != null)
                return fmt.ToString(null, CultureInfo.InvariantCulture);
            return Convert.ToString(val, CultureInfo.InvariantCulture) ?? string.Empty;
        }

// 最终 POST 到业务接口的 JSON 示例

cs 复制代码
{
    "temperature": "123.456",      // 而不是 "123,456"
    "valveStatus": "true",         // 而不是 "True"
    "message": "OK",
    "timestamp": "07/01/2026 14:30:25"
}

实现了:

  1. 统一字符串化 - 所有值都转成字符串,避免 JSON 序列化时的类型歧义

  2. 文化不变性 - 数值格式固定,业务接口解析时不会出错

  3. JSON 友好 - 布尔值小写符合 JSON 标准