Строка Json для объекта С#. Json строка


json - Как избежать специальных символов при построении строки JSON?

Я потрясен присутствием крайне преувеличенной дезинформации по столь широко обсуждаемому вопросу об основной теме.

Строки JSON не могут быть указаны с одинарными кавычками. Различные версии спецификации (оригинал Дугласа Крокфорда, версия ECMA и версия IETF) все указывают, что строки должны быть указаны с двойными кавычками. Это не теоретический вопрос, не вопрос мнения, который в настоящее время предлагает принятый ответ; любой синтаксический анализатор JSON в реальном мире будет выходить из строя, если вы попытаетесь разобрать одну кавычку.

Версия Crockford и ECMA даже отображают определение строки, используя красивую картинку, которая должна сделать точку однозначно чистой:

Симпатичная фотография также перечисляет все законные escape-последовательности в строке JSON:

  • \"
  • \\
  • \/
  • \b
  • \f
  • \n
  • \r
  • \t
  • \u, за которым следуют четыре шестнадцатеричных цифры

Обратите внимание, что, вопреки бессмыслице в некоторых других ответах здесь, \' никогда не является допустимой escape-последовательностью в строке JSON. Это не обязательно, потому что строки JSON всегда двойные кавычки.

Наконец, обычно вам не нужно думать об экранировании персонажей при программном создании JSON (хотя, конечно, вы будете вручную редактировать, скажем, файл конфигурации на основе JSON). Вместо этого формируйте структуру данных, которую вы хотите кодировать, используя любые родные карты, массивы, строки, числа, логические и нулевые типы, которые имеет ваш язык, и затем кодируйте их в JSON с помощью функции JSON-encoding. Такая функция, вероятно, встроена в любой язык, который вы используете, например JavaScript JSON.stringify, PHP json_encode или Python json.dumps. Если вы используете язык, на котором нет такой функциональности, вы можете найти библиотеку JSON для разбора и кодирования. Если вы просто используете функции языка или библиотеки для преобразования вещей в JSON и из него, вам даже не нужно будет знать правила экранирования JSON. Это то, что должен был сделать ошибочный вопрос здесь.

qaru.site

json - Строка Json для объекта С#

Я пытаюсь проанализировать строку json для объектов класса С#. У меня есть три класса в С#, и я получаю строку json из службы, и я кодирую, чтобы сохранить эту строку json в таблице sql. У меня есть проблема для синтаксического анализа строки json в нескольких классах в С#. Я использую newtonsoft.json для синтаксического анализа. У меня есть строка json

{ "receipt_cr": { "VchNo": [ "CR::00001", "CR::00002", "CR::00003", "CR::00004", "CR::00005" ], "VoucherName": [ "Receipt", "Receipt", "Receipt", "Receipt", "Receipt" ], "VchDate": [ "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00" ], "LedgerName": [ "xxxxxx", "yyyyy", "ssssss", "rrrrrrr", "wwwwwww" ], "UnderGroup": [ "Sundry Debtors", "Sundry Debtors", "Sundry Debtors", "Sundry Debtors", "Sundry Debtors" ], "AgnstRefNumber": [ "", "", "", "", "" ], "NetAmount": [ "2973500.00", "2973500.00", "5967015.00", "8968432.00", "5980000.00" ], "AgnstReferenceAmount": [ "", "", "", "", "" ], "CostCentreName": [ "", "", "", "", "" ], "CostCategory": [ "", "", "", "", "" ], "Status ": [ "NI", "NI", "NI", "NI", "NI" ] }, "receipt_dr": { "VchNo": [ "CR::00001", "CR::00002", "CR::00003", "CR::00004", "CR::00004" ], "VoucherName": [ "Receipt", "Receipt", "Receipt", "Receipt", "Receipt" ], "VchDate": [ "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00" ], "CashBankLedger": [ "Bank", "Bank", "Bank", "Bank", "Bank" ], "UnderGroup": [ "BankAccount", "BankAccount", "BankAccount", "BankAccount", "BankAccount" ], "Amount": [ "2973500.00", "2973500.00", "5967015.00", "2989477.00", "2989477.00" ], "TransactionType": [ "cheque", "RTGS", "cheque", "cheque", "cheque" ], "InstrumentNo": [ "1", "2", "3", "4", "5" ], "Date": [ "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00" ], "BankName": [ "Axis - 230", "Axis - 230", "Axis - 230", "Axis - 230", "Axis - 230" ], "BankBranch": [ "Avinashi Road", "Avinashi Road", "Avinashi Road", "Avinashi Road", "Avinashi Road" ], "BankDate": [ "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00", "2013-04-02 00:00:00" ], "Narration": [ "", "", "", "", "" ] }, "payment_dr": { "VchNo": [ "SP::00001", "SP::00002", "SP::00003", "SP::00004", "SP::00005" ], "VoucherName": [ "Payment", "Payment", "Payment", "Payment", "Payment" ], "VchDate": [ "2013-04-02 13:49:00", "2013-04-02 13:53:00", "2013-04-02 13:54:00", "2013-04-02 13:55:00", "2013-04-02 13:55:00" ], "LedgerName": [ "shruthi jewel city", "TRUST TECHONOLOGIES", "RKR Gold Pvt Ltd", "Bank of Nova Scotia", "Bank of Nova Scotia" ], "UnderGroup": [ "SundryCredit", "SundryCredit", "SundryCredit", "SundryCredit", "SundryCredit" ], "NetAmount": [ "8977387", "1000", "14915000", "14700000", "27700000" ], "AgnstRefNumber ": [ "", "", "", "", "" ], "AgnstReferenceAmount ": [ "", "", "", "", "" ], "CostCentreName ": [ "", "", "", "", "" ], "CostCategory ": [ "", "", "", "", "" ], "Status ": [ "NI", "NI", "NI", "NI", "NI" ] } }

и у меня есть класс С#, например

public class ReceiptCr { public String VchNo { get; set; } public String VoucherName { get; set; } public DateTime VchDate { get; set; } public String LedgerName { get; set; } public String UnderGroup { get; set; } public Decimal NetAmount { get; set; } public String AgnstRefNumber { get; set; } public Decimal AgnstReferenceAmount { get; set; } public String CostCentreName { get; set; } public String CostCategory { get; set; } public String Status { get; set; } } public class ReceiptDr { public String VchNo { get; set; } public String VoucherName { get; set; } public DateTime VchDate { get; set; } public String CashOrBankLedger { get; set; } public String UnderGroup { get; set; } public Decimal Amount { get; set; } public String TransactionType { get; set; } public String InstrumentNo { get; set; } public DateTime BankDate { get; set; } public String BankName { get; set; } public String BankBranch { get; set; } public String Narration { get; set; } } public class PaymentDr { public String VchNo { get; set; } public String VoucherName { get; set; } public DateTime VchDate { get; set; } public String LedgerName { get; set; } public String UnderGroup { get; set; } public Decimal NetAmount { get; set; } public String AgnstRefNumber { get; set; } public Decimal AgnstReferenceAmount { get; set; } public String CostCentreName { get; set; } public String CostCategory { get; set; } public String Status { get; set; } }

Как разобрать эту строку json для этих классов в С#

qaru.site

JSON | JavaScript

JSON (JavaScript Object Notation, объектная нотация JavaScript) – формат представления структурированных данных, используемый для передачи данных через Интернет.

По сути формат JSON представляет собою обычную строку.

Синтаксис JSON

Синтаксис JSON достаточно мал, он включает в себя только описание того, как выглядят передаваемые данные.

Типы данных JSON

В JSON типы данных можно разделить на две категории: простые и сложные.

К категории простых типов относятся:

  • string – текстовые строки (обычно их называют просто – строки)
  • number – числа
  • boolean – логические (булевы) значения
  • null

К сложным типам относятся:

  • object – объекты
  • array – массивы

Синтаксис JSON заимствован из JavaScript, поэтому для представления значений простых и сложных типов используется тот же синтаксис, что и в JavaScript.

Простые значения

Простейший пример JSON-кода – любое значение простого типа:

5 2.3 "Hello!" true null

В JSON строки должны быть заключены только в двойные кавычки. Использование одинарных кавычек приводит к синтаксической ошибке.

Объекты

Объект JSON представляет собой заключённый в фигурные скобки список из нуля или более свойств (пар "имя": значение), разделённых запятыми. Имена свойств объектов обязательно должны быть заключены в двойные кавычки. Отсутствие двойных кавычек или использование одинарных кавычек в имени свойства является ошибкой. Свойства могут содержать значения любого типа (простого или сложного):

{ "name": "Гомэр", "age": 40, "work": { "place": "Атомная станция", "location": "Спрингфилд" } }

Массивы

Массив JSON представляет собой заключённый в квадратные скобки список из нуля или более значений, разделённых запятыми. Массив может содержать значения любого типа (простого или сложного):

[ { "name": "Гомэр", "age": 40, "work": { "place": "Атомная станция", "location": "Спрингфилд" }, "children": [ "Барт", "Лиза", "Мэги" ] }, { "name": "Мардж", "age": 37, "work": { "place": "Дом", "location": "Спрингфилд" }, "children": [ "Барт", "Лиза", "Мэги" ] } ]

Объект JSON

Для работы с форматом JSON в JavaScript есть глобальный объект JSON.

puzzleweb.ru