如何在c#中循环json String?

时间:2016-02-17 06:46:10

标签: c# json

假设我将这个json保存在我的数据库中?

class SignupForm(forms.ModelForm):
    class Meta:
        model = Signup
        fields = ['fullname','email']

class ContactForm(forms.Form):
    name=forms.CharField(max_length=128, required=True,)
    email=forms.EmailField(required=True)
    phone=forms.IntegerField(max_value=10)
    message=forms.TextInput()

属性的数量是动态的。这意味着另一行我是5或6个属性。有没有办法循环它并将它们作为对象检索。

所以我想得到类型,大小,保护为fileds来创建另一种json格式。我怎样才能做到这一点 ?

JObject是一个很好的解决方案。但是,让我们说我循环遍历行以创建动态对象,仅针对我想要循环它的json字段并将属性添加到我正在创建的动态对象中。我能做到吗?

例如:

我喜欢这个

{
    "Type": "IPS",
    "Size": "4.7 Inch",
    "Protection": "OGS with full lamination technology"
}

现在

var dataTable= DbHelper.GetDatatable(StoredProcedureName);

所以行属性包含前面指定的json,

我现在可以循环来获得最终结果吗

foreach (DataRow row in rows)
{
    var attributes = row["Attributes"].ToString();
    var obj = new
    {
        Id = (int)row["ID"],
        Name = row["ProductName"].ToString()

    };
    list.Add(obj);
}   

3 个答案:

答案 0 :(得分:4)

您使用的是Json.NET吗?如果没有,我强烈推荐它。如果将它添加到项目中,它就变得如此简单:

JObject json = JObject.Parse(str);

以下是有关Json.NET的更多信息:http://www.newtonsoft.com/json/help/html/Introduction.htm

答案 1 :(得分:2)

您最好使用现有的JSON库。想到Newtonsoft JSON

示例(从他们的主页上被盗)

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

答案 2 :(得分:0)

您可以创建一个tabelar函数,该函数具有此字符串作为参数,并在内部将字符串拆分为列并将结果作为表格行返回,并使用字符串表格进行外部应用