簡體   English   中英

Json雙引號搞砸了C#

[英]Json double quote messed up C#

伙計們,我很頭疼,想使用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密鑰。

但是在某些類中,鍵中缺少雙引號。 任何簡單的方法來正確添加它們?

提前致謝

  1. 如果未引用屬性,則無法真正調用此JSON。

  2. 根據該站點 ,在所有標准中,除了RFC 7159之外,所有內容都必須用{}包裝

  3. 除了這些,我想到的一個快速解決方案包括使用正則表達式將帶引號的未命名屬性名稱替換。

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

請注意,這實際上並不全面,它僅支持其中包含az,AZ,0-9,$和_字符的屬性名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM