【问题标题】:how do i pass python object as argument to C# program我如何将 python 对象作为参数传递给 C# 程序
【发布时间】:2014-08-13 07:32:06
【问题描述】:

我有一个 C# windows 应用程序,我需要将在 python 脚本中创建的对象作为参数传递给 C# 程序,反之亦然。 那么我如何将 Python 脚本创建的对象作为参数传递给 C# 程序。

为此,我不想使用 Iron-Python。我的严格要求是使用通过运行 C Python 脚本创建的对象。我的 Python 脚本读取一个 json 文件并创建对象。

我的示例 Json 字符串:

{"?xml":{"@version":"1.0","@encoding":"Windows-1252"},"TestScript":{"TestExperiment":{"Test1":{"Control":[{"@Type":"System.Windows.Forms.TextBox","@Name":"Description","@FormName":"Test1","Text":null,"Visible":"True"},{"@Type":"System.Windows.Forms.TextBox","@Name":"Objective","@FormName":"Test1","Text":null,"Visible":"True"},{"@Type":"System.Windows.Forms.TextBox","@Name":"Test1","@FormName":"Test1","Text":null,"Visible":"True"}]}}}}

谢谢,

【问题讨论】:

    标签: c# python .net object parameter-passing


    【解决方案1】:

    如果你的python对象被序列化为Json,我认为你应该先使用Json.net包将输入字符串解析为Json对象。

    例如:

    JObject obj = Jobject.Parse(jsonString);
    

    之后,我建议您创建 C# 对象来镜像您的 python 对象,然后将它们反序列化为真实对象。

    例如:

    // Json String to Object
    Product deserializedProduct = JsonConvert.DeserializeObject<Product>(productJsonString);
    

    【讨论】:

    • 我试图将 Jsonstring 反序列化为 C# 对象,但它返回 null。我需要将 c# 类标记为可序列化 ??
    • 我已经粘贴了我的示例 json 字符串
    • 使用 JToken.Parse() 如果它是一个像这样的复杂对象。
    • 另外,如果 DeserializeObject 不起作用,这意味着您没有正确编写 C# 类。
    猜你喜欢
    • 2020-04-07
    • 2021-04-15
    • 2020-02-21
    • 2012-03-30
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    相关资源
    最近更新 更多