gpt4 book ai didi

c# - 将 JSON 字符串从一个应用程序传递到另一个应用程序(Windows 8.1 应用程序)C#

转载 作者:可可西里 更新时间:2023-11-01 10:16:56 24 4
gpt4 key购买 nike

我正在使用自定义协议(protocol)从 Windows 运行时应用程序打开另一个应用程序。我正在使用以下代码片段:

await Launcher.LaunchUriAsync(new Uri("appb://hello"));

当有纯字符串时它工作正常。但是它在传递 JSON 字符串时给出了解析错误。无效的 URI:无法解析主机名。

我通过以下方式创建 JSON:

 JObject jObj = new JObject();
jObj.Add("Name", "abcdef");
jObj.Add("Address", "acvdfs");
string json = jObj.ToString();

它给出 JSON 为:

{ "Name": "abcdef", "Address": "acvdfs" }

最佳答案

您的问题是因为您发送了要创建为 Uri 的整个 json 字符串。

您需要首先从字符串中获取所需的值,然后然后将这些值传递给您的方法。

举个例子,假设您

JObject jObj = new JObject();
jObj.Add("Name", "abcdef");
jObj.Add("Address", "acvdfs");
string json = jObj.ToString();

代码将为您提供“{Name}/{Address}”输出 - appb://abcdef/acvdfs

不是将其直接解析为字符串,您需要先获取值。

否则你的

{ "Name": "abcdef", "Address": "acvdfs" }

是什么导致了

Invalid URI: The hostname could not be parsed.

错误。

您可以这样做以便从该字符串中检索值:

var values = jObj.Properties().Select(x => x.Value.ToString()).ToArray(); // Gives you an array of the values.

var path = string.Join("/", values); // Creates an "a/b" path by joining the array.

await Launcher.LaunchUriAsync(new Uri("appb://" + path)); // Give that path to create the Uri and pass to your method.

此代码假定您仅使用键来按照我的方式创建路径。它适用于任意数量的键,因为它只是将所有值与“/”连接在一起 - 例如a/b/c/d/e/f/g

有任何问题,尽管问:)

希望这对您有所帮助!

关于c# - 将 JSON 字符串从一个应用程序传递到另一个应用程序(Windows 8.1 应用程序)C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com