我需要帮助,当试图转换yaml到json它是传递所有的属性字符串,它不承认布尔或整数字段。
我正在使用YamldotNet库,在c#中。如果有人能帮助我,我将不胜感激
// convertir string to stream
byte[] ArchivoConvertidobyteArray = Encoding.ASCII.GetBytes(archivoRuta);
var vigenciaYaml = (new StreamReader(new MemoryStream(ArchivoConvertidobyteArray)));
vigenciaJson = ConvertirYamlAJson(vigenciaYaml);
public static string ConvertirYamlAJson(TextReader yml)
{
var deserializer = new DeserializerBuilder().Build();
var yamlObject = deserializer.Deserialize(yml);
var serializer = new SerializerBuilder().JsonCompatible().Build();
string json = serializer.Serialize(yamlObject);
return json;
}
Yaml文件
# Definición del contrato
CodigoTipoContrato: BAS2
Descripcion: BASICO DOS
Empresa: DECORÉ
# Definición de conceptos del contrato
TiposConcepto:
- CodigoTipoConcepto: VPAG
Descripcion: VALOR A PAGAR
NaturalezaContable: debito
PerfilContabilizacion: PCGRAL
GrupoImpuestosArticulo: ''
CodigoMoneda: COP
PermiteCruce: true
预期内容
{
"CodigoTipoContrato": "BAS2",
"Descripcion": "BASICO DOS",
"Empresa": "DECORÉ",
"TiposConcepto": [
{
"CodigoTipoConcepto": "VPAG",
"Descripcion": "VALOR A PAGAR",
"NaturalezaContable": "debito",
"PerfilContabilizacion": "PCGRAL",
"GrupoImpuestosArticulo": "",
"CodigoMoneda": "COP",
"PermiteCruce": true
}
]
}
这就是它是如何转动的
{
"CodigoTipoContrato": "BAS2",
"Descripcion": "BASICO DOS",
"Empresa": "DECORÉ",
"TiposConcepto": [
{
"CodigoTipoConcepto": "VPAG",
"Descripcion": "VALOR A PAGAR",
"NaturalezaContable": "debito",
"PerfilContabilizacion": "PCGRAL",
"GrupoImpuestosArticulo": "",
"CodigoMoneda": "COP",
"PermiteCruce": "true"
}
]
}
2条答案
按热度按时间uubf1zoe1#
如果没有实体或类,你必须强制yaml中的值的类型:
json结果:
你对int也有同样的技巧:
!!int
5sxhfpxr2#
使用此代码可识别所有值类型