MKM_Matt Ответов: 1

JSON, создание заказа, но не создание строк заказа.


Я новичок в JSON, так что, без сомнения, это легко для Вас, экспертов ;-).
Я могу опубликовать следующее, И он создает заказ, но не добавляет никаких строк. Не мог бы кто - нибудь проверить код и посмотреть, является ли он структурно правильным, если вы не знаете, какие теги должны быть записаны, но правильный ли формат?

Кроме того, есть ли у меня правильные адресные биты для нескольких строк там?

Этот заказ предназначен только для одной строки, другие заказы будут состоять из нескольких строк, но я даже не могу получить заказ на одну строку... Вся помощь с благодарностью принималась.

{"header":
{
  "account": "0000420",
  "reference": "1234",
  "name": "Fred Jones",
  "address": {
    "line": ["Address line 1",
    "Address line 2",
    "Address line 3",
    "Address line 4"
    ],
    "postcode": "post"
  },
  "deliverycountry": "GB",
  "invoicename": "Fred Jones",
  "invoicecountry": "GB",
  "instructions": "Sample text inst",
  "ordertype": "sale",
  "lines": [{
	  "line": {
	    "product": "ABC123",
	    "extendeddescription": "Product description",
	    "quantity": 1,
	    "price": 100
	  }
  }]
}
}


Что я уже пробовал:

Я погуглил, никакой радости, передвинул скобки и квадратную скобку, никакой радости.

Richard Deeming

Мы не можем ответить на этот вопрос - мы понятия не имеем, что ожидает API, который вы публикуете.

Как чистое предположение, вложенные line объект кажется мне немного подозрительным. Я бы ожидал, что это будет больше похоже на:

"lines":[{
    "product": "ABS123",
    "extendeddescription": "Product description",
    "quantity": 1,
    "price": 100
}]


Но без знания того, что ожидает API, это всего лишь предположение.

MKM_Matt

Спасибо, Ричард, да, вы не знаете API, против которого я его ставлю, но цените комментарий о том, что линия выглядит подозрительно, изменилась так же, как и ваша. Я вернусь к поставщикам и проверю теги с ними (сейчас я думаю о неправильном имени), но они смехотворно медленно отвечают. Спасибо снова.

1 Ответов

Рейтинг:
2

OriginalGriff

Проверьте данные по вашим классам. Быстрый прогон этого через json2csharp - генерация классов c# из json[^]
дает:

public class Address
{
    public List<string> line { get; set; }
    public string postcode { get; set; }
}

public class Line2
{
    public string product { get; set; }
    public string extendeddescription { get; set; }
    public int quantity { get; set; }
    public int price { get; set; }
}

public class Line
{
    public Line2 line { get; set; }
}

public class Header
{
    public string account { get; set; }
    public string reference { get; set; }
    public string name { get; set; }
    public Address address { get; set; }
    public string deliverycountry { get; set; }
    public string invoicename { get; set; }
    public string invoicecountry { get; set; }
    public string instructions { get; set; }
    public string ordertype { get; set; }
    public List<Line> lines { get; set; }
}

public class RootObject
{
    public Header header { get; set; }
}