我有一个如下所示的Json: [{"示例临时" : "值"}, {"示例默认值" : ", "选定": true}]
我需要填写一个下拉菜单,例如:下拉列表应包含值:示例温度 示例默认值
和 示例默认值 应该是默认的选定值,
我尝试了以下代码:
JArray jArray = JArray.Parse(jsonstring);
foreach (JObject jObject in jArray.Children<JObject>())
{
foreach (JProperty jProperty in jObject.Properties())
{
string name = jProperty.Name.Trim();
string value = jProperty.Value.ToString().Trim();
drpValues.Items.Add(new RadComboBoxItem(name, value));
}
}
但"选定"也作为下拉值提供。
任何帮助将不胜感激。
非常感谢!
-铂
假设只有一个默认值,此代码应该可以工作
JArray jArray = JArray.Parse(jsonStr);
bool isDefault;
string defaultValue;
foreach (JObject jObject in jArray.Children<JObject>())
{
isDefault = false;
// check if current jObject contains a property named "selected"
// and if the value is true
JProperty p = jObject.Properties().SingleOrDefault(x => x.Name == "selected");
if (p != null && (bool)p.Value == true)
{
isDefault = true;
}
foreach (JProperty jProperty in jObject.Properties())
{
string name = jProperty.Name.Trim();
string value = jProperty.Value.ToString().Trim();
if (name != "selected")
{
drpValues.Items.Add(new RadComboBoxItem(name, value));
if (isDefault)
{
defaultValue = value;
}
}
}
}
// set the dropdown selected item
RadComboBoxItem itemToSelect = drpValues.FindItemByValue(defaultValue);
itemToSelect.Selected = true;