我知道有一些关于Newtonsoft的帖子,所以希望这不是一个重复......我正在尝试将Kazaa的API返回的JSON数据转换成某种形状的好对象
WebClient client = new WebClient();
Stream stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album");
StreamReader reader = new StreamReader(stream);
List<string> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(reader.Read().ToString());
foreach (string item in list)
{
Console.WriteLine(item);
}
//Console.WriteLine(reader.ReadLine());
stream.Close();
Run Code Online (Sandbox Code Playgroud)
那个JsonConvert系列只是我最近尝试过的一个......我不太了解它并且希望通过问你们来消除一些步法.我原本试图将它转换为字典或其他东西......实际上,我只需要在那里获取一些值,因此根据文档来判断,也许Newtonsoft的LINQ to JSON可能是更好的选择?思考/链接?
以下是JSON返回数据的示例:
{
"page": 1,
"total_pages": 8,
"total_entries": 74,
"q": "muse",
"albums": [
{
"name": "Muse",
"permalink": "Muse",
"cover_image_url": "http://image.kazaa.com/images/69/01672812 1569/Yaron_Herman_Trio/Muse/Yaron_Herman_Trio-Muse_1.jpg",
"id": 93098,
"artist_name": "Yaron Herman Trio"
},
{
"name": "Muse",
"permalink": "Muse",
"cover_image_url": "htt p://image.kazaa.com/images/54/888880301154/Candy_Lo/Muse/Candy_Lo-Muse_1.jpg",
"i d": 102702,
"artist_name": "\u76e7\u5de7\u97f3"
},
{
"name": "Absolution",
"permalink": " Absolution",
"cover_image_url": …Run Code Online (Sandbox Code Playgroud) 我们有一个MVC(MVC4)应用程序,有时可能会将第三方发布的JSON事件发送到我们的特定URL(" http://server.com/events/ ").JSON事件位于HTTP POST的主体中,正文是严格的JSON(Content-Type: application/json- 不是某些字符串字段中带有JSON的表单).
如何在控制器的主体内接收JSON主体?我尝试了以下但没有得到任何东西
[编辑]:当我说没有得到任何东西时,我的意思是jsonBody始终为null,无论我是将其定义为Object或string.
[HttpPost]
// this maps to http://server.com/events/
// why is jsonBody always null ?!
public ActionResult Index(int? id, string jsonBody)
{
// Do stuff here
}
Run Code Online (Sandbox Code Playgroud)
请注意,我知道如果我使用强类型输入参数声明方法,MVC会进行整个解析和过滤,即
// this tested to work, jsonBody has valid json data
// that I can deserialize using JSON.net
public ActionResult Index(int? id, ClassType847 jsonBody) { ... }
Run Code Online (Sandbox Code Playgroud)
但是,我们获得的JSON非常多样,因此我们不希望为每个JSON变体定义(和维护)数百个不同的类.
我正在通过以下curl命令测试它(这里有一个JSON的变体)
curl -i -H "Host: localhost" -H "Content-Type: …Run Code Online (Sandbox Code Playgroud) 我有以下格式的JSON:
[
{"id":"10","name":"User","add":false,"edit":true,"authorize":true,"view":true},
{"id":"11","name":"Group","add":true,"edit":false,"authorize":false,"view":true},
{"id":"12","name":"Permission","add":true,"edit":true,"authorize":true,"view":true}
]
Run Code Online (Sandbox Code Playgroud)
如何将其转换为C#DataTable对象,如下所示?
---------------------------------------------------------------------
ID | Name | Add | Edit | View | Authorize
---------------------------------------------------------------------
10 | User | true | true | true | true
11 | Group | true | true | true | true
12 | Permission| true | true | true | true
Run Code Online (Sandbox Code Playgroud) 我想将json字符串转换为Object列表.请帮我.如果完成它会更有帮助NewtonJson.
我试过了,但它不起作用.我不想要那个json的所有值.就是在MatrixModel中提到的
这是一个对象
public class MatrixModel
{
public string S1 { get; set; }
public string S2 { get; set; }
public string S3 { get; set; }
public string S4 { get; set; }
public string S5 { get; set; }
public string S6 { get; set; }
public string S7 { get; set; }
public string S8 { get; set; }
public string S9 { get; set; }
public string S10 { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 我有以下json对象,我传递给我的c#服务器
[
{
"ID": 1,
"FirstName": "Jay",
"LastName": "Smith"
},
{
"ID": 2,
"FirstName": "Rich",
"LastName": "Son"
},
{
"ID": 3,
"FirstName": "Emmy",
"LastName": "Wat"
}
]
Run Code Online (Sandbox Code Playgroud)
我像这样创建一个类
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我这样做
public static string addRecord(string details)
{
Person tempRecord = JsonConvert.DeserializeObject<Person>(details);
string tempFN = tempRecord.FirstName;
return tempFN;
}
Run Code Online (Sandbox Code Playgroud)
我无法得到实际结果.
我究竟做错了什么?我是否必须在Person类中创建另一个List?有帮助吗?
更新 - 我的记录来自Grid,这是我将它发送到我的服务器的方式
var jsonD = …Run Code Online (Sandbox Code Playgroud) 我在布局Controller中有以下Action
public JsonResult getlayouts(int lid)
{
List<layouts> L = new List<layouts>();
L = db.LAYOUTS.Where(d => d.seating_plane_id == lid).ToList()
return new JsonResult { Data = L, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
Run Code Online (Sandbox Code Playgroud)
我从另一个控制器调用此Action,如下所示:
layoutsController L = new layoutsController();
JsonResult result = L.getlayouts(lid);
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何从结果对象中获取数据?
我是json的新手.这是我的json对象.任何人请帮我为下面的json对象创建C#类
{
"JBS" : {
"name" : "Jobsite"
},
"LNK" : {
"name" : "Linked IN"
},
"MUK" : {
"name" : "Monster UK"
}
}
Run Code Online (Sandbox Code Playgroud)
在那里我需要(JBS,工地)的信息,就像n个元素一样.
如何解析具有Assets对象的json是未知的?
如
{
"ClassName": "Excel",
"Teacher": "Esther",
"Student": 50,
"Aircond": 0,
"Assets": {
"Chair": 50,
"Table": 50,
"Fan": 2,
and might be more here and is unknown to me
}
}
Run Code Online (Sandbox Code Playgroud) 我得到以下JSON响应.
[
{
"Issue": {
"ID": 80,
"Name": "Cold",
"Accuracy": 90,
"Icd": "J00",
"IcdName": "Acute nasopharyngitis [common cold]",
"ProfName": "Common cold",
"Ranking": 1
},
"Specialisation": [
{
"ID": 15,
"Name": "General practice",
"SpecialistID": 0
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我试着按照这里给出的指示.但我似乎无法在这里找到解决方案.并且在文档中仅解释了已预定义类的方案.有帮助吗?