0

我需要从 json 创建类,但发现一些奇怪的部分真的让我很困扰。这是我必须回应他们的文档中的示例。有一些“芬威房间”应该是可变的,但它看起来是包含其他属性的值(房间名称)。

{
"api_version" : 4 ,
"hotel_ids" : [97497],
"num_hotels" : 1,
"hotels" :
[
    {
        "hotel_id": 97497,
        "room_types":
        {
        "Fenway Room":
            {
            "url": "",
            "price": 178,
            "fees": 80,
            "fees_at_checkout": 0,
            "taxes": 20,
            "taxes_at_checkout": 0,
            "final_price": 278
            }
        }
    }
]
}

这是在线生成的课程,看起来不对。看起来这是不可能的。

public class FenwayRoom
{
    public string url { get; set; }
    public int price { get; set; }
    public int fees { get; set; }
    public int fees_at_checkout { get; set; }
    public int taxes { get; set; }
    public int taxes_at_checkout { get; set; }
    public int final_price { get; set; }
}

public class RoomTypes
{
    public FenwayRoom __invalid_name__Fenway Room { get; set; }
}

public class Hotel
{
    public int hotel_id { get; set; }
    public RoomTypes room_types { get; set; }
}

public class RootObject
{
    public int api_version { get; set; }
    public List<int> hotel_ids { get; set; }
    public int num_hotels { get; set; }
    public List<Hotel> hotels { get; set; }
}

这是我第一次使用 json,所以我真的很困惑。Json 看起来有效,但是可以从中创建类,或者我应该手动创建响应?...加入字符串...


添加示例:

"hotels" :[
    {
    "hotel_id" : 258705 ,
    "room_types" :
        {
            "Room 1" :
            {
                "url" :"", "price" : 1136 , "fees" : 101.55 , "taxes" : 50.00 ,  "final_price" : 1287.55 ,

            }
            "Room 2" :
            {
             "url" :"", "price" : 1136 , "fees" : 101.55 , "taxes" : 50.00 ,  "final_price" : 1287.55 ,
            }
        }
    }
]

其中“Room 1”和“Room 2”是房间标题,而不是属性或变量……这里可以是任何东西。

4

3 回答 3

0

您可以通过创建一个新类来从 json 生成类,将 json 复制出来,转到 Edit->paste special->paste json as classes

然后你会得到这个:class Class1 {

    public class Rootobject
    {
        public int api_version { get; set; }
        public int[] hotel_ids { get; set; }
        public int num_hotels { get; set; }
        public Hotel[] hotels { get; set; }
    }

    public class Hotel
    {
        public int hotel_id { get; set; }
        public Room_Types room_types { get; set; }
    }

    public class Room_Types
    {
        public FenwayRoom FenwayRoom { get; set; }
    }

    public class FenwayRoom
    {
        public string url { get; set; }
        public int price { get; set; }
        public int fees { get; set; }
        public int fees_at_checkout { get; set; }
        public int taxes { get; set; }
        public int taxes_at_checkout { get; set; }
        public int final_price { get; set; }
    }

}
于 2013-08-26T10:45:35.760 回答
0

这适用于 ASP.NET MVC4。不知道楼下是否支持。

public JsonResult MyAPI()
{

    return Json(new RootObject { api_version = 1,
                                 hotel_ids = 12342,
                                 hotels = new Hotel{ hotel_id = 123,
                                                     room_types = new RoomTypes...
                                       }
                                   }
}

就 Json 而言,它是从 Controller 类继承的对象。

于 2013-08-26T09:50:27.983 回答
0

试试这个 http://json2csharp.com/

http://json2csharp.com/  

   Paste  your Json String there it will generate the Json Class
于 2013-08-26T11:05:39.900 回答