2011-10-12 47 views
2

我是編程的新手,所以請耐心等待。如何在C中訪問字符串數組的元素#

背景

  1. 我創建一個jQuery函數,拿起文本,頂部和左側座標爲我的網頁上的各種文本框,我希望通過使用AJAX POST到所有這些信息用C#編寫的Web服務。

  2. 我已經成功地將一個文本框的這些數據傳遞給了Web服務方法,並將一條記錄插入到了一個SQL數據庫中(我不會花費多長時間來接受我!)。

  3. 爲了寫爲多個文本框數據,我使用含有對象的數組,爲此,我已在以下後取出的靈感來自第一選項一個jQuery函數: Jquery multidimensional arrays

這是我的代碼:

function Note(noteText, topCoord, leftCoord) { 
    return { 
     noteText: noteText, 
     topCoord: topCoord, 
     leftCoord: leftCoord 
    } 

var noteData = []; 

function SaveNote() { 
{'input').filter("notes").each(function(index) { 
var noteText = ($this)).val(); 
var coord = ($this)).offset(); 
var topCoord = coord.top; 
var leftCoord = coord.left; 

noteData.push(Note(noteText,topCoord,leftCoord)); 

var jsonText = JSON.stringify({ noteData : noteData}); 


}); 
  • 警報變量jsonText我收到以下內容:

    {「noteData」:[{「noteText」:「This is note text」; 「topCoord」:23.33; 「leftCoord」:12.23}, {「noteText」:「Note text 2」; 「topCoord」:23.33; 「leftCoord」:12.23}]}

  • 問題:

  • 這是很大的!但是,如何在C#中的web方法中'解碼'這些數據,以便我可以訪問每一段數據,最終爲每個Note'對象'向SQL數據庫中寫入一條記錄。
  • 我希望這是有道理的。 預先感謝您。

    +0

    看看[http://stackoverflow.com/questions/1212344/解析-JSON-在-C] [1] [1]:http://stackoverflow.com/questions/1212344/parse-json-in-c –

    +2

    退房: http://stackoverflow.com/questions/7699972/how-to-decode-a-json-string-using-c –

    回答

    3

    創建一個類,你可以反序列化到:

    public class Note() 
    { 
        public string noteText { get; set; } 
        public float topCoord { get; set; } 
        public float leftCoord { get; set; } 
    } 
    

    然後使用反序列化一個JavaScriptSerializer

    var jsSer = new JavaScriptSerializer(); 
    Note note = jsSer.Deserialize(json); 
    
    +0

    非常感謝您的快速回復。我會在這個週末看看。 – mulkraj

    +0

    尤里卡!我想我已經擁有了。我將很快發佈工作解決方案...呃,感覺很好。 – mulkraj

    1

    一個選擇是在您的Web服務中使用Json.net庫。它的一個開源庫,可以從http://json.codeplex.com/

    使用您的轉換您的JSON字符串庫與一個單一的代碼行XML下載:一旦你把它當作XML

    XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json); 
    

    ,它應該是容易保存到數據庫。 或者,如果您願意,可以創建一個.net對象來表示Json數據,並使用庫中的JsonSerializer類將Json文本反序列化爲.net對象。

    爲Json.net庫中的文件可以在http://james.newtonking.com/projects/json/help/

    +0

    歡呼,爲您的快速回復。我會在這個週末看一看,並讓你知道我如何繼續。 – mulkraj

    +0

    謝謝Rajeev,我想我有它,你的文章絕對有助於json文檔。 – mulkraj

    0

    參數被發現將抵達你的方法作爲字典的數組。Utilitze以下原型爲您WebMethod(如果這是一個Web服務,而不是頁面的方法裏面,去掉static標識符):

    [WebMethod] 
    public static void MyMethod(Dictionary<string, object>[] noteData) 
    

    在這裏,您可以遍歷所有數組,並根據需要訪問的元素:

    foreach (Dictionary<string, object> note in noteData) { 
        DataObject myDataObject = new DataObject(); 
    
        myDataObject.noteText = note["noteText"]; 
        ... 
    } 
    

    檢查this useful article from Encosia關於如何利用jQuery的,如果你不習慣從你的JavaScript將數據傳輸到您的Web服務使用此信息來調用Web服務的一般信息。

    +0

    感謝您非常快速的回覆和參考,我會讓你知道我如何繼續! – mulkraj

    +0

    ...仍在努力!我意識到我需要回到與C#的基礎知識,然後再解決這個問題。 – mulkraj