开发者

How to store a json array with .NET?

开发者 https://www.devze.com 2023-03-31 13:36 出处:网络
I Have a json array like [{\"name\":\"A\",\"value\":\"A\"},{\"name\":\"B\",\"value\":\"B\"},{\"name\":\"C\",\"value\":\"C\"}]

I Have a json array like

[{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}]

How can i pass(to the backend) and store(in db) that javascript object with asp.net??

EDIT:

OK to make it clearer, in some page, i got a javascript object

var array = [{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}];

, how can i pass it to some handler (like using

`$.post({url:"handler.ashx", data:array}) 

??), then in backend how can i save 开发者_如何转开发it into database or load this array later??

OR:

I'll appreciate it if u teach me how to convert

var array = [{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}];

into:

var arraystring = '[{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}]';

EDIT2:

Now i use the string-solution (traversal the array and add some '"' ':' ',' '{}' manually) as i mentioned just above, is there any potential problems??


You have several options when dealing with JSON on .NET

  • You can simply keep the array as is in the DB and retrieve it as is and use it
  • You can parse it into an Object using JSON.NET Library

for example on the 2nd case you simple use the JSON.NET method:

Newtonsoft.Json.Converters.KeyValuePairConverter

Or be fancy and use a Custom Deserialize as it's really easy to pass to and from JSON.


Let's imagine that you are posting something like this:

$.post("myForm.aspx",
       [{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}],
       function() {
          // all done.
       });

This will be converted to A,B,C when requesting the data using Request.Form["name"] or simply Request["name"] so you should change all the naming convention first and then you can simple use Request["nameA"], Request["nameB"], etc...


You would store it just like any other string you wanted to store in the database. If you want to re-instantiate it later in JavaScript you use the eval() function on the string to convert it back into an object.


The best way to do this is to de-serialize the json into object and save it to db as records.

Check JSON.NET library http://json.codeplex.com/

public class MyObj
{
    public string name{get;set;}
    public string value{get;set;}
}

void Main()
{
    string json ="[{\"name\":\"A\",\"value\":\"A\"},{\"name\":\"B\",\"value\":\"B\"},{\"name\":\"C\",\"value\":\"C\"}]";
    IList<MyObj> arr = JsonConvert.DeserializeObject<IList<MyObj>>(json);

    foreach(MyObj o in arr)
    {
        //add each object to db...
        Console.WriteLine(o.name+":"+o.value);
    }
}


Ok it turns out that using JSON.parse and JSON.stringify is a not-bad solution.

0

精彩评论

暂无评论...
验证码 换一张
取 消