You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在NLog中如何将指定属性序列化为原生JSON而非转义字符串?

解决方案

修改JsonLayout中Foo属性对应的attribute配置,新增encode和valueType参数即可,修改后的完整配置如下:

<target>
<layout xsi:type="JsonLayout">
 <attribute name="Foo" layout="${event-properties:item=Foo}" encode="false" valueType="Json" />
</layout>
</target>

参数说明

  • valueType="Json":显式声明该属性的内容为JSON格式,NLog不会自动为它添加外层引号,也不会按普通字符串规则处理
  • encode="false":关闭默认的特殊字符转义逻辑,避免JSON内部的双引号被自动转义为\"

兼容场景说明

  1. 如果你的NLog版本低于4.7(valueType参数的最低支持版本),可以去掉valueType="Json",仅保留encode="false"即可,需要自行确保存入Foo属性的字符串为合法JSON格式。
  2. 如果你的Foo属性存储的是未序列化的原生对象,将layout调整为${event-properties:item=Foo:@}即可,NLog会自动将对象序列化为嵌套JSON,无需手动提前序列化。

内容的提问来源于stack exchange,提问作者Shadow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:00:05