Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用IJsonValue在Windows 8 C中创建JSON:无法将类型“string”隐式转换为“Windows.Data.JSON.IJsonValue”_C#_Json_Windows 8 - Fatal编程技术网

C# 使用IJsonValue在Windows 8 C中创建JSON:无法将类型“string”隐式转换为“Windows.Data.JSON.IJsonValue”

C# 使用IJsonValue在Windows 8 C中创建JSON:无法将类型“string”隐式转换为“Windows.Data.JSON.IJsonValue”,c#,json,windows-8,C#,Json,Windows 8,我正在使用Visual Studio在C中创建一个Windows 8应用程序。我试图获取一组数据输入,并从这些数据创建一个JSON对象。以下是我的初步测试方法,它不起作用: IJsonValue name = "Alex"; JsonObject Character = new JsonObject(); Character.Add("Name", name); 我得到的错误是 Cannot Implicitly convert type 's

我正在使用Visual Studio在C中创建一个Windows 8应用程序。我试图获取一组数据输入,并从这些数据创建一个JSON对象。以下是我的初步测试方法,它不起作用:

        IJsonValue name = "Alex"; 
        JsonObject Character = new JsonObject();
        Character.Add("Name", name);
我得到的错误是

Cannot Implicitly convert type 'string' to 'Windows.Data.Json.IJsonValue'
我查阅了IJsonValue的文档,但不知道如何创建包含字符串的IJsonValue实例。那么,如何将数据存储在要添加到JsonObject的IJsonValue中呢?

该类实现了IJsonValue接口。您可以创建一个类的实例,并像这样使用它,例如

JsonValue jsonValue = JsonValue.Parse("{\"Width\": 800, \"Height\": 600, \"Title\": \"View from 15th Floor\", \"IDs\": [116, 943, 234, 38793]}");
double width = jsonValue.GetObject().GetNamedNumber("Width");
double height = jsonValue.GetObject().GetNamedNumber("Height");
string title = jsonValue.GetObject().GetNamedString("Title");
JsonArray ids = jsonValue.GetObject().GetNamedArray("IDs");

.

以下是您的操作方法:

JsonObject character = new JsonObject();
character.Add("Name",JsonValue.CreateStringValue("Alex"));

IJsonValue是一个接口,而不是一个类,因此I作为前缀。唯一可以指定给IJsonValue名称的是一个对象,该对象的类实现了IJsonValue接口。如果您的数据位于类中,那么将其转换为JSON的最简单方法可能是使用Newtonsoft JSON.NET库并通过类实例调用SerializeObject。。。Sandra,我使用了Newtonsoft库,谢谢。值得指出的是,以类似xpath的方式处理JSON有点脆弱,因为几乎没有机会进行键入和编译时检查。将JSON反序列化为强类型类是一种更长期、更可靠的方法,它还可以让您更轻松地与数据交互。这并不意味着GetNamedString方法不起作用,它起作用了。这只是一种更类型化、更可控的方法,更易于使用,也不太可能被破坏以下是关于它的一些信息: