<返主目录 ▕▏ C#基础库 WjwLibs: V5.0.5▕▏帮助文档 : C#动态对象树类型 ▕▏ 编译日期: 2024-09-17▕▏ Email: wujwmail@163.com

〖C#动态对象树类型〗 /wjw_cs.net/WjwLibs_core/WjwLibs/WjwObject.cs


##类-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)