[英]Convert string to json array in C#
我是C#的新手。 我想将两个字符串转换为单个JSON数组。
我尝试了以下方法:
var username = "username";
var password = "XXXXXXXX";
var json_data = "result":[{"username":username,"password":password}]'; //To convert the string to Json array i tried like this
MessageBox.Show(json_data);
它不起作用,出现很多错误。
我浏览了以下链接:
http://www.codeproject.com/Articles/272335/JSON-Serialization-and-Deserialization-in-ASP-NET
了解如何将我的字符串转换为Json数组。 在上面的网址中有很好的解释,但是对于我来说,我不知道如何将这两个字符串转换为单个Json数组。
我希望输出是这种格式,
[{"result":{"username":"Tom","password":"XXXXXXX"}}]
请帮助我做到这一点。
您可以使用JSON序列化器API。 一种常用的工具是来自Newtonsoft的工具,称为Json.NET 。
此类API的工作是将C#对象转换为JSON(也称为序列化),并将JSON数据转换为C#对象(反序列化)。
在您的示例中,Newtonsoft JSON API可以按以下方式使用。
public class UserData { public string username; public string password; }
var userData = new UserData() { username = "Tom", password = "XXXXXXXX" };
UserData[] arr = new UserData[] { userData };
string json_data = JsonConvert.SerializeObject(arr); // this is the Newtonsoft API method
// json_data will contain properly formatted Json. Something like [{"result":{"username":"Tom","password":"XXXXXXX"}}]
MessageBox.Show(json_data);
通过电话进行打扰时请打扰。
为了扩展bytefire的答案,可以通过以下两种方法实现:
在您的情况下,创建具有所需属性的类, username
和password
。 我将使用来自Json.NET的JsonProperty
注释属性,以便序列化程序可以匹配它们而JsonProperty
考虑大小写:
public class User { [JsonProperty(PropertName = username)] public string Username { get; set; } [JsonProperty(PropertName = password)] public string Password { get; set; } }
然后,使用JsonConvert.SerializeObject序列化您的对象:
var user = new User { Username = "user", Password = "pass" };
var jsonUser = JsonConvert.SerializeObject(user);
使用Json.NET的 JsonTextWriter
,您可以在不创建对象的情况下构造json:
var stringBuilder = new StringBuilder(); var stringWriter = new StringWriter(stringBuilder); string jsonString = null; using (var jsonWriter = new JsonTextWriter(stringWriter)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WriterPropertyName("username"); writer.WritePropertyValue("user"); writer.WriterPropertyName("password"); writer.WritePropertyValue("pass"); writer.WriteEnd(); writer.WriteEndObject(); jsonString = writer.ToString(); }
或多种选择之一:如果您认为JSON.net太大,可以使用简单的Json 。
在Javascript对象表示法中 ,顶层始终是一个对象。
在JSON中,数组不是对象,但可以是值。
您可以将语法展开为:
{ string : [ { string : string , string : string },{ string : string , string : string } ] }
在您的情况下,可能是:
{ "allUsers": [ { "name": "Luis" , "password": "R0Cke+" }, { "name": "Janette" , "password": "BookTour2011" } ] }
我碰到的最简单方法。 当我想解析从YelpAPI获得的JSON时,它对我有用。
从这里开始是您想在JSON文件中使用值1确切字符串的情况下列出其类别之一。
var contentJson =等待SendRequest(request);
动态响应= JsonConvert.DeserializeObject(contentJson);
列出abc = response.value1.ToObject>();
注意:JSON中的T和value1相同,但是将JSON粘贴为类时,在JSON树中将T类和value1作为父值。 码:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.