Json双引号搞乱了C#

Json双引号搞乱了C#,c#,json,format,quotes,C#,Json,Format,Quotes,伙计们,我在尝试用C#将as3文件序列化为json时遇到了很大的麻烦 现在我偶然发现了这个=> "licvarreelVideosConfig":[{ url: "ChoiceSlot2/GEOLJSlot/videos/00.flv", width: 224, height: 224, onWholeReel: false, transparent: true }, { url:"ChoiceSlot2/GEOLJSlot/videos/01.f

伙计们,我在尝试用C#将as3文件序列化为json时遇到了很大的麻烦

现在我偶然发现了这个=>

"licvarreelVideosConfig":[{
    url: "ChoiceSlot2/GEOLJSlot/videos/00.flv",
    width: 224,
    height: 224,
    onWholeReel: false,
    transparent: true
}, {
    url:"ChoiceSlot2/GEOLJSlot/videos/01.flv",
    width: 224,
    height: 224,
    onWholeReel: false,
    transparent: true
}]
假设我根据as3文件中给出的内容生成json密钥

但在某些类中,键中缺少双引号。 有没有简单的方法来正确添加它们

提前谢谢

  • 如果属性没有被引用,那么就不能真正调用这个JSON

  • 根据这一点,在所有标准中,除了RFC 7159之外,所有内容都必须用{}包装

  • 撇开这些不谈,我想到的一个快速解决方案是使用正则表达式将不带引号的属性名替换为带引号的属性名

  • 范例

    var unquotedJson = "\"licvarreelVideosConfig\":[{" +
                            "url: \"ChoiceSlot2/GEOLJSlot/videos/00.flv\"," +
                            "width: 224," +
                            "height: 224," +
                            "onWholeReel: false," +
                            "transparent: true" +
                        "}, {" +
                            "url:\"ChoiceSlot2/GEOLJSlot/videos/01.flv\"," +
                            "width: 224," +
                            "height: 224," +
                            "onWholeReel: false," +
                            "transparent: true" +
                        "}]";
    
    var quotedJson = new Regex("([a-zA-Z0-9_$]+?):(.*?)[,]{0,1}").Replace(unquotedJson, "\"$1\":$2");
    
    // if the serializer needs nested { ... }
    // var nestedQuotedJson = string.Format("{{{0}}}", quotedJson);
    
    // do the serialization
    

    注意,这并不全面,它只支持包含a-z、a-z、0-9$和uu字符的属性名。

    可能正则表达式也需要一些思考。希望这能让你走上成功之路:)谢谢你的回答:)。现在一切都很好,但我还是会检查例外情况。关于我贴的剪贴画,只是为了表达我的想法。再次感谢:)