在我的plc上位机项目中,需要将 PLC 采集到的各种类型数据,统一转换为 JSON 接口需要的字符串格式,确保:
数值格式固定(不受服务器区域影响)
布尔值统一为
true/false(而非True/False或1/0)字符串原样传递
那么就可以使用下面这个简单封装的类
/// <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 示例
{ "temperature": "123.456", // 而不是 "123,456" "valveStatus": "true", // 而不是 "True" "message": "OK", "timestamp": "07/01/2026 14:30:25" }实现了:
统一字符串化- 所有值都转成字符串,避免 JSON 序列化时的类型歧义
文化不变性- 数值格式固定,业务接口解析时不会出错
JSON 友好- 布尔值小写符合 JSON 标准