Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2016, 15:26   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

http://json.net/ —> http://www.newtonsoft.com/json/help/...troduction.htm —> http://www.newtonsoft.com/json/help/...lizeObject.htm + http://www.newtonsoft.com/json/help/...Collection.htm
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2016, 15:42   #12
PiroGOD
Пользователь
 
Регистрация: 11.10.2016
Сообщений: 12
По умолчанию

что бы получить объект global_id надо сделать так?
Код:
string jsonString = File.ReadAllText(@"C:\Users\AsusPC\Desktop\Pi\Lab1\123.json");

            JArray array = JArray.Parse(jsonString);

            json ID = JsonConvert.DeserializeObject<json>(jsonString);
Код:
class json
    {
        const string JsonText = "@";
        [JsonProperty(PropertyName = "KC")]
        public string KC { get; set; }

        [JsonProperty(PropertyName = "Kod")]
        public string Kod { get; set; }

        [JsonProperty(PropertyName = "Name")]
        public string Name { get; set; }

        [JsonProperty(PropertyName = "global_id")]
        public int global_id { get; set; }

        [JsonProperty(PropertyName = "system_object_id")]
        public string system_object_id { get; set; }  
    }
PiroGOD вне форума Ответить с цитированием
Старый 12.10.2016, 15:51   #13
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык вторая строка лишняя же, вы уже не используете JArray.

Код:
.DeserializeObject<List<json>>
там же не один объект.

И переименуйте json во что-то нормальное (описывающее те сущности, что у вас там хранятся)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2016, 16:25   #14
PiroGOD
Пользователь
 
Регистрация: 11.10.2016
Сообщений: 12
По умолчанию

Не получается достать global_id
Код:
jsonOKOF ID = JsonConvert.DeserializeObject<jsonOKOF>(jsonString);
// тут ошибка Необработанное исключение типа "Newtonsoft.Json.JsonSerializationException" в Newtonsoft.Json.dll
Код:
jsonOKOF ID = JsonConvert.DeserializeObject<List<json>>
// тут синтаксическая ошибка
PiroGOD вне форума Ответить с цитированием
Старый 12.10.2016, 16:29   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от PiroGOD Посмотреть сообщение
тут синтаксическая ошибка
Где ошибка? Строку с json-то естественно всегда надо передавать.

И вернет он то, что указано в <>
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2016, 16:55   #16
PiroGOD
Пользователь
 
Регистрация: 11.10.2016
Сообщений: 12
По умолчанию

Я делаю как сказано здесь http://www.newtonsoft.com/json/help/...lizeObject.htm


Код:
class jsonOKOF
    {
        const string JsonText = "@";
        [JsonProperty(PropertyName = "KC")]
        public string KC { get; set; }

        [JsonProperty(PropertyName = "Kod")]
        public string Kod { get; set; }

        [JsonProperty(PropertyName = "Name")]
        public string Name { get; set; }

        [JsonProperty(PropertyName = "global_id")]
        public int global_id { get; set; }

        [JsonProperty(PropertyName = "system_object_id")]
        public string system_object_id { get; set; }  
    }
static void Main(string[] args)
        {
            
            string jsonString = File.ReadAllText(@"C:\Users\AsusPC\Desktop\Pi\LabPi1_3\LabPi1_3\OKOF.json");
            

            

            jsonOKOF ID = JsonConvert.DeserializeObject<jsonOKOF>(jsonString);
может, что то упускаю?
PiroGOD вне форума Ответить с цитированием
Старый 12.10.2016, 16:57   #17
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вторую ссылку посмотрите.
У вас в JSON коллекция объектов, а не один объект.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2016, 17:30   #18
PiroGOD
Пользователь
 
Регистрация: 11.10.2016
Сообщений: 12
По умолчанию

Почитал тут http://www.newtonsoft.com/json/help/...troduction.htm
не хочет компилироваться, ошибки выдает и.т.д
может дадите подсказку?
PiroGOD вне форума Ответить с цитированием
Старый 12.10.2016, 17:35   #19
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

я про вторую ссылку в конце, то есть четвертую.

Код:
using System;
using System.Collections.Generic;
using System.Net;
using Newtonsoft.Json;

namespace ConsoleApplication55
{
    class OKOF
    {
        public int KC { get; set; }

        public int Kod { get; set; }

        public string Name { get; set; }

        [JsonProperty(Required = Required.Always, PropertyName = "global_id")]
        public int GlobalId { get; set; }

        [JsonProperty(PropertyName = "system_object_id")]
        public int SystemObjectId { get; set; }
    }

    class Program
    {
        static string ReadJson()
        {
            var webClient = new WebClient();

            string html = webClient.DownloadString("http://programmersforum.ru/showpost.php?p=1636264&postcount=1");

            string json = html.Substring(html.IndexOf("<code>") + 6);
            json = json.Substring(0, json.IndexOf("</code>")).Trim();
            json = json.Replace("&quot;", "\"");
            json = json.Remove(json.Length - 1);
            json += "\r\n]";

            return json;
        }

        static List<OKOF> ParseJson(string json)
        {
            return JsonConvert.DeserializeObject<List<OKOF>>(json);
        }

        static void Main(string[] args)
        {
            string json;
            try
            {
                json = ReadJson();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to read data: " + ex.Message);
                Console.ReadKey();
                return;
            }

            List<OKOF> okofs;
            try
            {
                okofs = ParseJson(json);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to parse data: " + ex.Message);
                Console.ReadKey();
                return;
            }

            foreach (var okof in okofs)
            {
                Console.WriteLine(okof.GlobalId);
            }

            Console.ReadKey();
        }
    }
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2016, 17:51   #20
PiroGOD
Пользователь
 
Регистрация: 11.10.2016
Сообщений: 12
По умолчанию

Спасибо, теперь понятно почему не получалось
Код:
static List<OKOF> ParseJson(string json)
вот такую штуку оказывается надо было создать
PiroGOD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка пузырьком Катрин72 Помощь студентам 1 08.06.2012 12:55
сортировка пузырьком onezze Паскаль, Turbo Pascal, PascalABC.NET 0 09.04.2012 16:18
Сортировка пузырьком с++ FroLe Общие вопросы C/C++ 6 20.12.2010 01:23
Сортировка пузырьком Авторитет Общие вопросы .NET 4 15.11.2010 19:50