2016-01-11 2 views
1

Ребята У меня большие головные боли, пытающиеся сериализовать as3-файл на json с C#.Json double quote messed up C#

Прямо сейчас я наткнулся на эту =>

"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 
}] 

Допустим, я генерировать ключи JSon, основанные на том, что дается из файла as3.

Но в некоторых классах в ключах отсутствуют двойные кавычки. Любой простой способ правильно их добавить?

Заранее спасибо

ответ

1
  1. Если свойства не указаны, то вы не можете действительно назвать это JSON.

  2. Согласно этому site, во всех стандартах, для 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 

Заметим, что это на самом деле не является исчерпывающим, он поддерживает только имена свойств с-Z, A-Z, 0-9, $ и _ символов в них.

+0

Возможно, регулярное выражение нуждается в некотором размышлении. Надеюсь, это может привести вас к пути к успеху, хотя :) –

+0

Спасибо за ответ :). Теперь все работает нормально, но все же я проверю исключения. О снятой вставке я просто хотел показать эту идею. еще раз спасибо :) –

 Смежные вопросы

  • Нет связанных вопросов^_^