假设我将这个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);
}
答案 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函数,该函数具有此字符串作为参数,并在内部将字符串拆分为列并将结果作为表格行返回,并使用字符串表格进行外部应用