有没有办法将JSON内容反序列化为C#4动态类型?为了使用DataContractJsonSerializer,跳过创建一堆类会很不错.
我已经花了两天时间对代码样本等进行"最好的"工作,尝试将一个非常大的JSON文件读入c#中的数组中,以便稍后将其拆分为二维数组进行处理.
我遇到的问题是我找不到任何人做我想做的事情的例子.这意味着我只是想编写一些希望最好的代码.
我已经成功地完成了一些工作:
这是通过下面的代码完成的,但是在输入几行到数组后它会崩溃程序.这可能与文件大小有关.
// If the file extension was a jave file the following
// load method will be use else it will move on to the
// next else if statement
if (fileExtension == ".json")
{
int count = 0;
int count2 = 0;
int inOrOut = 0;
int nRecords=1;
JsonTextReader reader = new JsonTextReader(new StreamReader(txtLoaction.Text));
string[] rawData = new string[5];
while (reader.Read())
{
if (reader.Value != null)
if (inOrOut == 1)
{
if …Run Code Online (Sandbox Code Playgroud) 我需要在C#中使用JSON格式将以下数据写入文本文件.括号对于它是有效的JSON格式很重要.
[
{
"Id": 1,
"SSN": 123,
"Message": "whatever"
},
{
"Id": 2,
"SSN": 125,
"Message": "whatever"
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的模型类:
public class data
{
public int Id { get; set; }
public int SSN { get; set; }
public string Message { get; set;}
}
Run Code Online (Sandbox Code Playgroud) 我正在关注RazorGenerator上的这篇文章,它说我必须添加对以下内容的引用:
System.Web.Helpers.dllSystem.Web.WebPages.dllSystem.Web.Razor.dll我唯一能看到的Add Reference就是System.Web.Razor,但我不知道其他的在哪里.
我System.Web.Helpers.Json用于将一些JSON反序列化到dynamicNET 4中.以下行失败并出现此错误:TypeInitializationException: Attempt by method 'System.Web.Helpers.Json..cctor()' to access method 'System.Web.Helpers.Json.CreateSerializer()' failed.
var json = Json.Decode(response);
Run Code Online (Sandbox Code Playgroud)
这response是一个冗长但有效的JSON.这可能是什么问题?我试过LINQPad和一个简短的手工JSON,它的工作原理.这是某种配置问题吗?
[编辑]
这是实际的JSON示例.看起来内容几乎无关紧要.当它在一个全新的控制台应用程序或LINQPad中运行时,它按预期工作.但是,如果您尝试从全新的Windows窗体应用程序运行相同的代码,则会出现上述错误.
var json = Json.Decode("{\"r\":{\"0\":{\"id\":\"2\"},\"1\":{\"id\":\"33\"}}}");
Run Code Online (Sandbox Code Playgroud)
[EDIT2]
实际上,事实证明这与项目类型无关.如果正在调试项目,则抛出异常.如果只是运行,则不会发生异常.奇怪,是吗?
我有一个字符串,我想从中获取一些值.
我的字符串看起来像:
STRING1:
"{\r\n \"id\": \"100000280905615\",
\r\n \"name\": \"Jerard Jones\",
\r\n \"first_name\": \"Jerard\",
\r\n \"last_name\": \"Jones\",
\r\n \"link\": \"https://www.facebook.com/Jerard.Jones\",
\r\n \"username\": \"Jerard.Jones\",
\r\n \"gender\": \"female\",
\r\n \"locale\": \"en_US\"\r\n}"
Run Code Online (Sandbox Code Playgroud)
字符串2:
"{\r\n \"id\": \"100000390001929\",
\r\n \"name\": \"\\u05d1\\u05d2\\u05e8\\u15dc\\u25d9 \\u05d1\\u05e8\\u05d5\\u05e9\",
\r\n \"first_name\": \"\\u05d4\\u05d2\\u05e7\\u02dc\\u05d9\",
\r\n \"last_name\": \"\\u05d1\\u05e8\\u05d5\\u05e9\",
\r\n \"link\": "https://www.facebook.com/people/\\u05d2\\u05d1\\u05e@\\u05dc\\u05d9-\\u05d1\\u05e8\\u05d4\\u05e9/100000390001929\",
\r\n \"gender\": \"female\",
\r\n \"locale\": \"he_IL\"\r\n}"
Run Code Online (Sandbox Code Playgroud)
不幸的是,有一种情况是字符串将采用相同的概念,但没有一些参数:
STRING3:
"{\r\n \"id\": \"100000390001929\",
\r\n \"last_name\": \"\\u05d1\\u05e8\\u05d5\\u05e9\",
\r\n \"gender\": \"female\",
\r\n \"locale\": \"he_IL\"\r\n}"
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到的值:id,first_name,last_name,gender,locale?
任何帮助赞赏!
有没有简单的方法在c#下面解析JSOn
{"type":"text","totalprice":"0.0045","totalgsm":"1","remaincredit":"44.92293","messages": [
{"status":"1","messageid":"234011120530636881","gsm":"923122699633"}
]}
Run Code Online (Sandbox Code Playgroud)
如果有多个结果.
我试图使用C#从rest api json响应中提取值.
我有以下代码:
client.BaseUrl = "https://api.cloud.appcelerator.com";
request.Resource = "/v1/chats/create.json?key=" + cac.AppCode.ToString();
request.Method = Method.POST;
request.AddUrlSegment("appkey", "key");
var response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)
在"响应"消息中,我得到了一个json内容如下:
{
"meta": {
"code": 200,
"status": "ok",
"method_name": "createChatMessage"
},
"response": {
"chats": [
{
"id": "521cfcd840926a0b3500449e",
"created_at": "2013-08-27T19:24:08+0000",
"updated_at": "2013-08-27T19:24:08+0000",
"message": " join to the chat group, welcome …",
"from": {
"id": "520f41e125e74b0b2400130a",
"first_name": "Administrator",
"created_at": "2013-08-17T09:26:57+0000",
"updated_at": "2013-08-27T19:23:10+0000",
"external_accounts": [
],
"email": "roy@tomax.co.il",
"confirmed_at": "2013-08-17T09:26:57+0000",
"username": "admin",
"admin": "true",
"stats": {
"photos": {
"total_count": 0
}, …Run Code Online (Sandbox Code Playgroud) 如何将以下Json响应转换为C#对象?
{ "err_code": "0", "org": "CGK", "des": "SIN", "flight_date": "20120719",
"schedule":
[
["W2-888","20120719","20120719","1200","1600","03h00m","737-200","0",[["K","9"],["F","9"],["L","9"],["M","9"],["N","9"],["P","9"],["C","9"],["O","9"]]],
["W2-999","20120719","20120719","1800","2000","01h00m","MD-83","0",[["K","9"],["L","9"],["M","9"],["N","9"]]]
] }
Run Code Online (Sandbox Code Playgroud) .NET 4.5和VS2012中的JSON处理有什么新的优于DataContractJsonSerializer吗?我见过一些关于System.JSON的内容.但它更好吗?
我知道也有JSON.NET,但我不确定是否允许我将另一个.dll添加到我的项目中.