0

I have JSON string that come from a WebService. I have use this code to convert it to object.

System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
object cw_values = serializer.DeserializeObject(cw_stringData);

Where cw_stringData is my JSON.

It returns an object{object[69]} to me. for example it means that it contains 69 items as its first level.

I have convert it again by this code.

object[] final_cw_values = ((object[])(cw_values));

So now final_cw_values has type object[] .

Each 69 items in final_cw_values have this type.

object {System.Collections.Generic.Dictionary<string,object>}

That have 15 items in it.

Each inner item have type:

System.Collections.Generic.KeyValuePair<string,object>

That contain one Key and one Value.

I need to have these Value in an Array.

If I click at Value and click Add to Watch I have some code like this but it don't work in my code.

(new System.Collections.Generic.Mscorlib_DictionaryDebugView<string,object>(((System.Collections.Generic.Dictionary<string,object>)(final_cw_values[0])))).Items[0].Value

This is part of my JSON:

[
  {
    "FirstWeight": -1,
    "SecondWeight": 0,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:rowspan,3;SecondWeight:rowspan,3;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.2 اندازه در بورس",
    "Hidden2": "202       ",
    "ThirdLevel": "2.2.1 ارزش بازار (م ر)",
    "Hidden3": "10031     ",
    "ProfileCode": "1",
    "ThirdWeight": 22,
    "FirstEffectiveWeight": 50,
    "SecondEffectiveWeight": 25,
    "ThirdEffectiveWeight": 5.5,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.2 اندازه در بورس",
    "Hidden2": "202       ",
    "ThirdLevel": "2.2.2 درصد سهام شناور آزاد (%)",
    "Hidden3": "10036     ",
    "ProfileCode": "1",
    "ThirdWeight": 52,
    "FirstEffectiveWeight": 50,
    "SecondEffectiveWeight": 25,
    "ThirdEffectiveWeight": 13,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.2 اندازه در بورس",
    "Hidden2": "202       ",
    "ThirdLevel": "2.2.3 ارزش بازار شناور آزاد (م ر)",
    "Hidden3": "10053     ",
    "ProfileCode": "1",
    "ThirdWeight": 12,
    "FirstEffectiveWeight": 50,
    "SecondEffectiveWeight": 25,
    "ThirdEffectiveWeight": 3,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": 0,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:rowspan,5;SecondWeight:rowspan,5;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.3 نفدشوندگی سهام در بورس",
    "Hidden2": "203       ",
    "ThirdLevel": "2.3.1 تعداد روزهای بدون معامله اخیر",
    "Hidden3": "10066     ",
    "ProfileCode": "1",
    "ThirdWeight": 2,
    "FirstEffectiveWeight": 50,
    "SecondEffectiveWeight": 25,
    "ThirdEffectiveWeight": 0.5,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.3 نفدشوندگی سهام در بورس",
    "Hidden2": "203       ",
    "ThirdLevel": "2.3.2 تعداد روزهای معامله شده در ​​سال جاری",
    "Hidden3": "10095     ",
    "ProfileCode": "1",
    "ThirdWeight": 0,
    "FirstEffectiveWeight": 0,
    "SecondEffectiveWeight": 0,
    "ThirdEffectiveWeight": 0,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.3 نفدشوندگی سهام در بورس",
    "Hidden2": "203       ",
    "ThirdLevel": "2.3.3 متوسط تعداد روزهای معامله شده در سال",
    "Hidden3": "10131     ",
    "ProfileCode": "1",
    "ThirdWeight": 15,
    "FirstEffectiveWeight": 50,
    "SecondEffectiveWeight": 25,
    "ThirdEffectiveWeight": 3.75,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.3 نفدشوندگی سهام در بورس",
    "Hidden2": "203       ",
    "ThirdLevel": "2.3.4 تعداد معاملات در سال جاری",
    "Hidden3": "10135     ",
    "ProfileCode": "1",
    "ThirdWeight": 0,
    "FirstEffectiveWeight": 0,
    "SecondEffectiveWeight": 0,
    "ThirdEffectiveWeight": 0,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": 0,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:rowspan,4;SecondWeight:rowspan,4;",
    "class": "not-editable-row",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.4 قیمت سهام در بورس",
    "Hidden2": "204       ",
    "ThirdLevel": "2.4.1 قیمت پابانی",
    "Hidden3": "10185     ",
    "ProfileCode": "1",
    "ThirdWeight": 0,
    "FirstEffectiveWeight": 0,
    "SecondEffectiveWeight": 0,
    "ThirdEffectiveWeight": 0,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "class": "not-editable-row",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.4 قیمت سهام در بورس",
    "Hidden2": "204       ",
    "ThirdLevel": "2.4.3 پایین ترین قیمت در 52 هفته گذشته",
    "Hidden3": "10304     ",
    "ProfileCode": "1",
    "ThirdWeight": 0,
    "FirstEffectiveWeight": 0,
    "SecondEffectiveWeight": 0,
    "ThirdEffectiveWeight": 0,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": -1,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:display,none;SecondWeight:display,none;",
    "class": "not-editable-row",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.4 قیمت سهام در بورس",
    "Hidden2": "204       ",
    "ThirdLevel": "2.4.4 متوسط قیمت در 12 هفته گذشته",
    "Hidden3": "10312     ",
    "ProfileCode": "1",
    "ThirdWeight": 0,
    "FirstEffectiveWeight": 0,
    "SecondEffectiveWeight": 0,
    "ThirdEffectiveWeight": 0,
    "Clustering": 1
  },
  {
    "FirstWeight": -1,
    "SecondWeight": 0,
    "attr": "FirstLevel:display,none;FirstWeight:display,none;SecondLevel:rowspan,5;SecondWeight:rowspan,5;",
    "FirstLevel": "2. معیارهای معاملاتی",
    "Hidden1": "2         ",
    "SecondLevel": "2.5 بازدهی سهام در بورس",
    "Hidden2": "205       ",
    "ThirdLevel": "2.5.1 آخرین بازده روزانه (%)",
    "Hidden3": "10186     ",
    "ProfileCode": "1",
    "ThirdWeight": 0,
    "FirstEffectiveWeight": 0,
    "SecondEffectiveWeight": 0,
    "ThirdEffectiveWeight": 0,
    "Clustering": 1
  }
]

Mohammad

2
  • 1
    Can you post the JSON (or part of it)? Commented May 12, 2014 at 5:17
  • I have add it for you Commented May 12, 2014 at 5:34

1 Answer 1

3

Better if you create strongly typed class.

public class Data
{
    public int FirstWeight { get; set; }
    public int SecondWeight { get; set; }
    public string attr { get; set; }
    public string FirstLevel { get; set; }
    public string Hidden1 { get; set; }
    public string SecondLevel { get; set; }
    public string Hidden2 { get; set; }
    public string ThirdLevel { get; set; }
    public string Hidden3 { get; set; }
    public string ProfileCode { get; set; }
    public int ThirdWeight { get; set; }
    public int FirstEffectiveWeight { get; set; }
    public int SecondEffectiveWeight { get; set; }
    public double ThirdEffectiveWeight { get; set; }
    public int Clustering { get; set; }
}

And convert like

JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Data> lstValues = serializer.Deserialize<List<Data>>(cw_stringData);
Sign up to request clarification or add additional context in comments.

5 Comments

it is possible using NewtonSoftJson library nuget.org/packages/newtonsoft.json I reckon, you can also use serializer.Deserialize which will return dynamic object if you are ok with it. Nonetheless, Rashmin answer is best approach
NewtonJson is external library, if .Net framework provides facility why do we use 3rd party library. :)
I agree. However, NewtonSoftJson has few additional methods which can be helpful. Nonetheless, in this problem context you are right. it was just suggestion from my side.
Yes you are right too! in certain cases NewtonJson is good and has much more features. but here JavaScriptSerializer could handle easily.
Thanks for your fast Answer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.