使用 Json Net 和 C# 解析 Json 来填充下拉列表



我有一个如下所示的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;

相关内容

  • 没有找到相关文章

最新更新