2011-10-12 46 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