如何强制序列化器不为特定属性值添加引号?
让Newtonsoft.Json对特定字符串属性生成无引号的非标准JSON值
要实现这个需求,核心是让序列化器不对目标值做JSON字符串的格式化处理,直接输出原始内容。Newtonsoft.Json(Json.NET)里的JRaw类型正好能满足这个需求——它会跳过常规的JSON序列化规则,把传入的内容原封不动输出。
代码示例
把需要去掉引号的属性值用JRaw包裹即可:
// 普通字符串属性,序列化后保留引号 new JProperty("propertyName2", "{value2}"); // 用JRaw包裹Postman变量标识,序列化后无引号 new JProperty("propertyName3", new JRaw("{{value3}}"));
序列化结果
执行序列化后,会得到你想要的非标准JSON:
{ ... "propertyName2": "{value2}", "propertyName3": {{value3}} }
注意事项
JRaw输出的是完全原始的内容,不会做任何转义或格式校验,所以只适合Postman这类明确支持双大括号变量语法的场景。- 生成的内容不属于标准JSON,无法被常规JSON解析器正常解析,这点要提前明确。
内容的提问来源于stack exchange,提问作者user2363676
相关产品推荐
相关产品推荐

