<返主目录 ▕▏ C#基础库 WjwLibs: V5.0.5▕▏帮助文档 : C#动态对象树类型 ▕▏ 编译日期: 2024-09-17▕▏ Email: wujwmail@163.com
##类-1.名称: WjwObject ▕→ 处理C#动态对象树类型类: 命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 处理C#动态对象树类型类: json[反]系列化,php-serialize[反]系列化(php程序员的利器),xml[反]系列化 输入: 由C#对象构造: WjwObject warr = new WjwObject(jobj); 由json串构造: WjwObject warr = new WjwObject(jstr); 由xml串构造: WjwObject warr = new WjwObject(xstr); 由php系列串输入: WjwObject warr = new WjwObject(phpStr); 输出: 输出本对象: dynamic obj=warr.JData; 输出json串: string json_str=warr.ToString(); 输出xml串: string xml_str=warr.ToXml().ToString(); 输出php系列串: string php_str=warr.ToPhp_Serialize(false); 用对象名查询: var any = warr["对象名1","对象名2","对象名3",...];//等同:warr["对象名1"]["对象名2]["对象名3...] 子对象树的斌值与创建: warr["对象名1","对象名2","对象名3",...]=any; //当对象不存在时则创建,相当于js object.assign 示例: using Newtonsoft.Json.Linq; using WjwLibs; ...... JObject jobj = JObject.Parse(@"{ 'Stores': [ 'Lambton Quay', 'Willis Street' ], 'Manufacturers': [ { 'Name': 'Acme Co', 'Products': [ { 'Name': 'Anvil', 'Price': 50 } ] }, { 'Name': 'Contoso', 'Products': [ { 'Name': 'Elbow Grease', 'Price': 99.95 }, { 'Name': 'Headlight Fluid', 'Price': 4 } ] } ] } "); WjwObject arr = new WjwObject(jobj); arr["Manufacturers",1, "new_name"] = "abc"; WjwPhp.print(arr); WjwPhp.print(arr["Manufacturers", 1, "Products", 1, "Price"]); WjwPhp.print(arr.ToPhp_Serialize(false)); 定义: public class WjwObject
###属性名称: JData
▕→ 当前数据实例对象
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 当前数据实例对象 定义: public JToken JData { get; set; } = new JObject();
###属性名称: Cursor
▕→ 当前结点对象指针
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 当前结点对象指针 定义: public object Cursor { get; set; } = null;
###方法名称: WjwObject
▕→ 构造器
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 构造器 参数: obj : 初始数据: 1. json字串 2. xml字串 3. C#对象 4. php的serialize系列化字串 定义: public WjwObject(object obj = null)
###方法名称: ToString
▕→ 输出格式化的json字串
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 输出格式化的json字串 返回: 定义: public override string ToString()
###方法名称: ToString
▕→ 输出格式化的json字串
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 输出格式化的json字串 参数: isExp : 是否为友好格式 返回: 定义: public string ToString(bool isExp)
###方法名称: ToXml
▕→ 输出为XML(WjwE4x)对象
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 输出为XML(WjwE4x)对象 可转为: XmlDocument xdoc = (XmlDocument)this.ToXml(); strnig xstr=this.ToXml().ToString(); 参数: root_name : 根名称,用缺省值root自动判断非树结构时加根结点 返回: WjwE4x 定义: public WjwE4x ToXml(string root_name="root")
###属性名称: this[params object[] keys]
▕→ 查询(创建)子对象
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 查询(创建)子对象 参数: keys : 键名序列(字符串或整数) 返回: 定义: public dynamic this[params object[] keys]
###方法名称: ToPhp_Serialize
▕→ 输出php系列化字符串
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 输出php系列化字符串 参数: to_stdClass : 系列化为php的stdClass或为Array 返回: php系列化字符串 定义: public string ToPhp_Serialize(bool to_stdClass = true)
###方法名称: FromPhp_Serialize
▕→ 从php系列化字符串创造
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 从php系列化字符串创造 参数: serialize_str : php系列化字符串 定义: public void FromPhp_Serialize(string serialize_str)
###方法名称: FormPhpArray
▕→ 从类PHP的关联数组对象输入转为常规对象
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 从类PHP的关联数组对象输入转为常规对象 参数: jobj : 动态对象,为null时转自身 定义: public void FormPhpArray(dynamic jobj =null)
###方法名称: ToPhpArray
▕→ 转为类PHP的关联数组对象并输出
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 转为类PHP的关联数组对象并输出 格式说明: 类PHP关联数组: "Stores": { "0": "Lambton Quay", "1": "Willis Street" } 常规对象: "Stores": [ "Lambton Quay", "Willis Street"] 返回: 动态对象 定义: public dynamic ToPhpArray()
###方法名称: ToJArray
▕→ 转对象为JArray
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 转对象为JArray 例如: Tuple<int, string> tuple = new Tuple<int, string>(1, "aa"); WjwPhp.print(WjwObject.ToJArray(tuple).ToString()); 返回: JArray 定义: public static JArray ToJArray(object obj)
###方法名称: Assign
▕→ 合并对象:
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 合并对象: 结果为类php关联数组对象,可用FromPhpArray()转为常规格式 参数: oArge0 : 对象0 oArges : 对象1-n 返回: 合并后的WjwObject 定义: public static WjwObject Assign(Object oArge0, params Object[] oArges)
###方法名称: JArray2JObject
▕→ JArray转JObject
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: JArray转JObject 用对象数字序列键("0","1","2","n")来表示数组 参数: jarr : JArray 返回: JObject 定义: public static JObject JArray2JObject(JArray jarr)
###方法名称: JObject2JArray
▕→ JObject2JArray
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: JObject2JArray 从对象数字序列键("0","1","2","n")中提取 参数: jobj : JObject 返回: JArray 定义: public static JArray JObject2JArray(JObject jobj)
###方法名称: EachCB
▕→ 对象树遍历
命名空间: WjwLibs 所属类: WjwLibs.WjwObject 说明: 对象树遍历 参数: node : 起始结点 cb : 回调函数:(定义如下) bool cb(node,level){} node: 当前的元素结点 level: 当前结点的层深度(从1计) 返回: false时结束循环 level : 层深度初值 返回: 完成true/中断退出fale 定义: public static bool EachCB(JToken node, Func<JToken, int, bool> cb, int level = 0)