2014-02-26 46 views
1
O{bTyp | S{WCS-STD}bUsr | S{Paul R Dunaway}bUid | S{1350}sCmd | S{}sId | A{}sNme | S{}sUrl  | S{}sLbl | S{}sCok | S{}mMsg | S{All Other Software}fAct | S{}fTyp | S{}fKey | S{}fVal | S{}bUserType | S{CUST}transType | S{}mTsp | S{2012-01-26 15:03:04}}|O{bTyp | S{WCS-STD}bUsr | S{system}bUid | I{-1}sCmd | S{}sId | A{}sNme | S{}sUrl | S{}sLbl | S{}sCok | S{}mMsg | S{[An agent will be with you shortly.]}fAct | S{}fTyp | S{}fKey | S{}fVal | S{}bUserType | S{SYSTEM}transType | S{}mTsp | S{2012-01-26 15:03:04}} 

這是我們的網絡聊天系統(Cisco UCCE/eGain)用來存儲成績單。我期待通過C#/ SQL訪問它們,但我發現這種編碼有點奇怪。上面是我後清理所有的URL編碼比特下面的例子這是什麼格式? Cisco WIM Chat Transcript

O%7BbTyp%20%7C%20S%7BWCS-STD%7DbUsr%20%7C%20S%7BPaul%20R%20Dunaway%7DbUid%20%7C%20S%7B1350%7DsCmd%20%7C%20S%7B%7DsId%20%7C%20A%7B%7DsNme%20%7C%20S%7B%7DsUrl%20%7C%20S%7B%7DsL 
+1

我稱之爲'專有'。也就是思科特定的編碼。 – Zoredache

回答

1

這似乎使一些更有意義reindented:

O{ 
    bTyp | S{WCS-STD} 
    bUsr | S{Paul R Dunaway} 
    bUid | S{1350} 
    sCmd | S{} 
    sId | A{} 
    sNme | S{} 
    sUrl  | S{} 
    sLbl | S{} 
    sCok | S{} 
    mMsg | S{All Other Software} 
    fAct | S{} 
    fTyp | S{} 
    fKey | S{} 
    fVal | S{} 
    bUserType | S{CUST} 
    transType | S{} 
    mTsp | S{2012-01-26 15:03:04} 
} 
| 
O{ 
    bTyp | S{WCS-STD} 
    bUsr | S{system} 
    bUid | I{-1} 
    sCmd | S{} 
    sId | A{} 
    sNme | S{} 
    sUrl | S{} 
    sLbl | S{} 
    sCok | S{} 
    mMsg | S{[An agent will be with you shortly.]} 
    fAct | S{} 
    fTyp | S{} 
    fKey | S{} 
    fVal | S{} 
    bUserType | S{SYSTEM} 
    transType | S{} 
    mTsp | S{2012-01-26 15:03:04} 
} 

(請原諒我,如果我只是重申明顯)這看起來不像我之前見過的任何形式的序列化;我認爲它不在可能性之內,認爲它是專有的。大括號內包含的值可以是以下四種數據類型中的一種:由緊接在開頭大括號之前的字符表示:S用於字符串,I用於整數,O用於對象(作爲命名屬性的值的集合)或A,推測是數組。對象屬性根據值之前的字符串進行命名,並用管道字符將其分隔開。

一些問題仍然存在:

  • 什麼是一個數組值是什麼樣子?
  • 爲什麼bUid的數據類型從一個對象變爲另一個對象?
  • 爲什麼空白不一致? (如果不是數值的一部分,我會假定空白被忽略)
  • 爲什麼用管道字符來分隔兩個頂級對象?這是數組符號如何工作?
+0

我一直在思索更多信息。我發現他們用Java編寫的軟件可以通過網絡門戶讀取成績單。盡力在.NET中複製它。感謝您的輸入! –