• Кто может дать пример парсинга json в C#?

    @Oxoron
    Шарпер
    internal static class Serializer
        {
            internal static void Serialize<T>(this T arg, string fileName)
            {
                string res = JsonConvert.SerializeObject(arg, Formatting.Indented);
                File.WriteAllText(fileName,res);
            }
    
            internal static T Deserialize<T>(string fileName)
            {
                string json = File.ReadAllText(fileName);
                T res = JsonConvert.DeserializeObject<T>(json);
                return res;
            }
        }

    Этот класс сериализует\десериализует объекты.

    public class Item 
    {
    ...
    public string title{get; set;}
    public string url{get;set;}
    ...
    }

    Это класс одной записи. Для сериализации используйте автосвойства (те самые get; set;), обязательно public.

    public class Response
    {
    public int count{get;set;}
    public List<Item> items{get; set;}
    }


    Для получения данных используете код вроде
    string pathToFIle = @"C:\temp\anyFile";
    Response response = Serializer.Deserialize<Response>(pathToFile);
    String[] titles = response.items.Select(item => item.title).ToArray(); // Массив названий
    String[] urls = response.items.Select(item => item.url)ToArray(); // Массив адресов


    библиотека: newtonsoft.json.dll

    Если надо - могу скинуть готовый пример (на тостере есть личка?).

    Также посетите json2csharp.com
    Вставьте в поле свой Json-образец, сразу получите необходимые классы.
    Ответ написан
    10 комментариев
  • Как можно разобрать такой вид json при помощи C#?

    @MonkAlex
    C#, SQL, Delphi, C++ etc
    Зачем что-то приводить?
    Берете к примеру jsonutils.com и кормите ему свой json.
    Он говорит, что это вполне валидный json и его можно парсить в лист таких вот классов:
    public class Example
        {
            public int id { get; set; }
            public string idnetrikalpu { get; set; }
            public string decription { get; set; }
            public string district { get; set; }
            public string externallpuid { get; set; }
            public bool isactive { get; set; }
            public string lpufullname { get; set; }
            public string lpushortname { get; set; }
        }


    Ну и, чтобы считать это всё :
    var fb = new WebClient() {Encoding = Encoding.UTF8}.DownloadString("http://91.237.82.1/api/v1/netrikalpu/?format=json");
          var list = JsonConvert.DeserializeObject<List<Example>>(fb);

    А уже из листа достаете что вам надо и куда надо.
    Ответ написан
    3 комментария
  • Как предсказать состояния полета бумажного самолетика?

    Вам необходимы всего 2 формулы (возможно, вероятностные) :
    - влияние вертикальной и горизонтальной скоростей на вертикальное ускорение (подъемная сила)
    - влияние вертикальной и горизонтальной скоростей на горизонтальное ускорение (сопротивление воздуха)

    Все компоненты влияют на объект линейной композицией. Соответственно весь полет описывается набор дифф.уравнений 2 порядка, которые можно моделировать вместо того, чтобы решать аналитически.

    Описанные выше формулы предлагаю получить эмпирическим путем - видеозаписью полета реального бумажного самолета.

    Вот смоделировал "на коленке" полет против синусоидального ветра :
    e1be20a6d9ae46d69a94ffba5e397009.gif
    Ответ написан
    6 комментариев
  • Методика перевода гео-координат в относительные координаты полотна (draw) для рисования схемы?

    Moskus
    @Moskus
    Судя по числам, у вас географические координаты. Если вы не хотите, чтобы изображение ваших объектов было растянуто по горизонтали пропорционально тому, как далеко от экватора находится ваш объект, вам нужно сначала перепроецировать географические координаты на эллипсоиде или сфере (я не знаю, где вы их взяли, потому тут возможны варианты) в прямоугольные, а потом просто нормировать получившиеся цифры, чтобы они влезли в ваш экран и повернуть оси.
    Выбор прямоугольных систем координат широк, но вам, вероятно, проще всего будет работать с проекцией Меркатора. Все что нужно для перепроецирования содержит библиотека PROJ4 (см. вот тут).
    Ответ написан
  • [Android] Как рисовать в Relativelayout?

    @bracadabra
    Если я правильно понял вопрос, то делается это примерно так:
    public class MyClass extends RelativeLayout {
     
     private RectF mBounds = new RectF(0, 0, 0, 0);
    
    private Paint mPaint = new Paint();
    
      public MyClass(final Context context, final AttributeSet attrs, final int defStyle) {
            super(context, attrs, defStyle);
            setWillNotDraw(false); //разрешаем рисовать в ViewGroup
            mPaint.setColor(Color.RED);
            mPaint.setStyle(Paint.Style.FILL);
            mPaint.setAntiAlias(true);
        }
    
        @Override
        protected void onSizeChanged(final int width, final int height, final int oldw,
                final int oldh) {      
            mBounds.left = 0;
            mBounds.top = 0;
            mBounds.right = width;
            mBounds.bottom = height;
        }
    
        @Override
        public void onDraw(final Canvas canvas) {
            super.onDraw(canvas);
    
            canvas.drawOval(mBounds, mPaint);
        }
    }
    Ответ написан
    2 комментария
  • Какой алгоритм сортировки слов по смыслу или библиотеку использовать?

    viktorvsk
    @viktorvsk
    Необходимо найти сходства у этих строк по смыслу


    Это все равно, что сказать: "Не встречали готовых плагинов к фотошопу, что б тысячи фотографий из сотен жанров сделать красивыми?"

    Если все словосочетания у вас подобного типа, то находите "расстояния" между ними и группируйте по диапазонам.
    Расстояния можно рассчитывать, например, по количеству одинаковых букв в словосочетании или строгой их последовательности.

    Например, расстояние между "у человека нет проблем" и "у человека нет проблемы" = 1, а между "у человека нет проблем" и "задачи человека решение" уже или 0 или около "длина строки (которая длиннее или короче) минус количество букв в слове "человека)

    Ну или попробуйте построить свои грамматики и факты с блэк-джеком и Томитой

    P.S. А вообще это попахивает сео, и если это так, то не маскируйте неприятные запахи, а устраняйте их (с)
    Ответ написан
    1 комментарий