Vikram Singh Rathaur Ответов: 1

Чтение json-файла в строке на языке C# с заголовком & request


у меня есть следующие данные в файле json

{ "Заголовок": { "APPLICATION-ID": "82274992", "CUST-ID": "82274992", "REQUEST-TYPE": "REQUEST", "REQUEST-TIME": "29042013 11:30:00" }, "запрос": { "01": "LOW_PRIORITY", "02": "CIR", "03": "жилищный кредит", "04": "1000000", "05": "индивидуальный", "06": "softcell@poc.com", "07": "прямой", "08": "0.0", "09": "TEST_BANK", "10": "001", "11": "QA/UAT", "12": "жилищный кредит", "13": "TESTING_001", "14": "TEST_BRANCH", "15": "предварительный экран",
"16": "ложь", "18": "ложь", "19": "индивид", "20": "Конституция", "21": { "01": "тест Тест тест", "02": "тест" }, "22": "женщина", "23": "замужем", "27": "26051982", "28": "2", "29": [ { "01": "резиденция", "02": "принадлежит", "03": "резиденция РАУНАК", "04": "крыло квартиры № 24 4-й этаж , OPP MAAL DHAKKA RD CHINCHWAD", "06": "27", "05": "411019" } ], "30": { "01": "AAAPA0000D" }, "31": [ { "01": "мобильный телефон", "02": "9898989898" }, { "01": "офисный телефон", "02": "303030303" } ], "40": "77", "51": "500000", "52": "500000", "54": "500000", "55": "500000" } }

я получаю ошибку "указанное значение имеет недопустимые символы CRLF."

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

string json;

        using (StreamReader r = new StreamReader(Server.MapPath("/json_Docs/Request_Json.json")))
        {
           json = r.ReadToEnd();

        }

[no name]

Размещенные в JSON - текст, похоже, действует по JSONLint - валидатор JSON[^].
Но, конечно, опубликованный текст может отличаться по сравнению с вашими реальными данными.

Vikram Singh Rathaur

это реальные данные, которые я использую.

Patrice T

Это текстовое поле сайта изменило ваш json.
То, что мы видим, не является вашими реальными данными.

Vikram Singh Rathaur

{ "ЗАГОЛОВОК": {
"APPLICATION-ID": "82274992",
"CUST-ID": "82274992",
"REQUEST-TYPE": "ЗАПРОС",
"ВРЕМЯ ЗАПРОСА": "29042013 11:30:00"
},
"ЗАПРОС": {
"01": "LOW_PRIORITY",
"02": "CIR",
"03": "ЖИЛИЩНЫЙ КРЕДИТ",
"04": "1000000",
"05": "индивидуальный",
"06": "softcell@poc.com",
"07": "прямой",
"08": "0.0",
"09": "TEST_BANK",
"10": "001",
"11": "QA/UAT",
"12": "ЖИЛИЩНЫЙ КРЕДИТ",
"13": "TESTING_001",
"14": "TEST_BRANCH",
"15": "ПРЕДВАРИТЕЛЬНЫЙ ЭКРАН",
"16": "ложь",
"18": "ложь",
"19": "индивид",
"20": "Конституция",
"21": {
"01": "ТЕСТ ТЕСТ ТЕСТ",
"02": "испытание"
},
"22": "женщина",
"23": "женат",
"27": "26051982",
"28": "2",
"29": [
{
"01": "резиденция",
"02": "принадлежит",
"03": "ЖИТЕЛЬСТВО RAUNAK ",
"04": "КРЫЛО КВАРТИРЫ № 24 4-Й ЭТАЖ , OPP MAAL DHAKKA RD CHINCHWAD",
"06": "27",
"05": "411019"
}
],
"30": {
"01": "AAAPA0000D"
},
"31": [
{
"01": "Мобильный Телефон",
"02": "9898989898"
},
{
"01": "Офисный Телефон",
"02": "303030303"
}
],
"40": "77",
"51": "500000",
"52": "500000",
"54": "500000",
"55": "500000"
}
}

[no name]

Пожалуйста, прочтите это:
разные результаты

Если вы используете компьютер с Windows, вы можете получить разные результаты. Возможно, это связано с тем, как Windows обрабатывает новые строки. По сути, если у вас есть только символы новой строки (\n) в вашем JSON и вставить его в JSONLint с компьютера Windows, он может проверить его как действительный ошибочно, так как Windows может потребоваться возврат каретки (\r), а также для правильного обнаружения новых строк. В качестве решения используйте либо прямой ввод URL-адреса, либо убедитесь, что новые строки вашего контента соответствуют ожидаемой архитектуре вашей системы!

пока проверяйте свои данные на JSONLint - валидатор JSON[^]

Vikram Singh Rathaur

я получаю ниже ошибки

Указанное значение содержит недопустимые символы CRLF.
Имя параметра: значение

[no name]

То, как вы получили этот JSON и как вы его используете, может вызвать эту проблему.
"Указанное значение имеет недопустимые символы CRLF" google this, и вы увидите другое решение, смотрите, что подходит вам здесь

1 Ответов

Рейтинг:
2

Sreekanth(Software Developer)

Добавьте следующий Newtonsoft.Ссылки на Json

using Newtonsoft.Json.Linq;
using System.IO;
using Newtonsoft.Json;

и попробуйте следующий код
JObject o1 = JObject.Parse(File.ReadAllText(@"c:/Data/json_Docs/Request_Json.json"));

            string json = string.Empty;
            using (StreamReader file 
                     =File.OpenText(@"c:/Data/json_Docs/Request_Json.json"))
            using (JsonTextReader reader = new JsonTextReader(file))
            {
                JObject o2 = (JObject)JToken.ReadFrom(reader);

                json= o2.ToString();
            }


Vikram Singh Rathaur

Попробуйте, но получите ту же ошибку

Vikram Singh Rathaur

получаю ниже ошибки

Исключение типа 'System.ArgumentException' произошло в System.dll но не был обработан в пользовательском коде

Дополнительная информация: указанное значение содержит недопустимые символы CRLF.