求助 关于JSON字符串对象应用属性设置上的问题
金蝶云社区-王兴旺
王兴旺
1人赞赏了该文章 1,108次浏览 未经作者许可,禁止转载编辑于2015年10月23日 08:46:23

应用场景:
在动态生成字段过程中,有些字段的属性(如下拉列表的EnumType,单价字段的精度等),希望在数据库规则表中进行设置,在根据规则表生成时自动对字段应用这些属性设置。
看到K3系统表中也有些类似的字段内容(如【{"FormId":"c94ff227-0895-4db7-accd-4f552fb87af2","ShowType":"1","formType":"bill"}】,我猜测也系统也应该是这样应用的。
在网上看到以下类似的代码(此代码是把属性参数打包为一个json实例传递的):
[code]JSONObject web = new JSONObject();
web["source"] = @"http://www.baidu.com";
web["height"] = 517;
web["width"] = 917;
web["isweb"] = true;
web["title"] = "SmartLink For K3 Cloud";
this.View.AddAction("ShowKDWebbrowseForm", web);
this.View.SendAynDynamicFormAction(this.View);[/code] 我的代码大致是这样写的(需要逐个字段属性设置值):
[code] JSONObject jsn = JSONObject.Parse(properties);//参数是JSON字符串,包括属性设置信息
string enumType = jsn["EnumType"].ToString();
if (enumType == "Custom")
{
string enumList = jsn["EnumList"].ToString();//具体还待实现

}
else
{
cmbField.EnumObject = new EnumObject(this.Model.LoadSingleEnumObject(this.Context, enumType));
}[/code]需要释疑问题:
1、网上的代码是把一个JSONObject 实例对象做为参数传递的,不需要逐个解析属性并设置对应的控件属性值,这个应该如何实现?
2、JSONObject 是否可以构建复杂点的字符串,如果可以如何构建(如下需求)?
if (enumType == "Custom")
{
string enumList = jsn["EnumList"].ToString();
}
如果枚举类型enumType 不是从系统库根据ID读取的对象(是通过JSON字符串定义的,即enumType == "Custom"),属性 EnumList 将是一个满足下拉列表要求的枚举值的集合,代码解析后,对下拉列表进行赋值,如何实现?

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0