Парсинг JSON использование Json.net

Код не запускается / что-то похожее на части моего PHP-кода выводятся

Если вы не видите никакого результата из вашего кода PHP и / или видите части своего литерального исходного кода PHP на веб-странице вы можете быть уверены, что ваш PHP на самом деле не выполняется. Если вы используете View Source в своем браузере, вы, вероятно, видите весь исходный код PHP-файла. Поскольку PHP-код встроен в теги , браузер попытается интерпретировать их как HTML-теги, и результат может выглядеть несколько смущенным.

Чтобы на самом деле запустить ваши PHP-скрипты, вам нужно:

  • веб-сервер, который выполняет ваш скрипт
  • , чтобы установить расширение файла на .php, в противном случае веб-сервер не будет интерпретировать его как таковой *
  • для доступа ваш .php-файл через веб-сервер

* Если вы не переконфигурируете его, все может быть настроено.

Это последнее особенно важно. Двойной щелчок по файлу, скорее всего, откроет его в вашем браузере, используя такой адрес, как:

file://C:/path/to/my/file.php

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

http://localhost/my/file.php

Вы также можете проверить, используете ли вы короткие открытые теги вместо и ваша PHP-конфигурация отключила короткие открытые теги.

Также см. PHP-код не выполняется, вместо этого код отображается на странице

111
задан casperOne 1 May 2011 в 18:26
поделиться

2 ответа

Я не знаю о JSON.NET, но это хорошо работает с JavaScriptSerializer от System.Web.Extensions.dll (.NET 3,5 SP1):

using System.Collections.Generic;
using System.Web.Script.Serialization;
public class NameTypePair
{
    public string OBJECT_NAME { get; set; }
    public string OBJECT_TYPE { get; set; }
}
public enum PositionType { none, point }
public class Ref
{
    public int id { get; set; }
}
public class SubObject
{
    public NameTypePair attributes { get; set; }
    public Position position { get; set; }
}
public class Position
{
    public int x { get; set; }
    public int y { get; set; }
}
public class Foo
{
    public Foo() { objects = new List<SubObject>(); }
    public string displayFieldName { get; set; }
    public NameTypePair fieldAliases { get; set; }
    public PositionType positionType { get; set; }
    public Ref reference { get; set; }
    public List<SubObject> objects { get; set; }
}
static class Program
{

    const string json = @"{
  ""displayFieldName"" : ""OBJECT_NAME"", 
  ""fieldAliases"" : {
    ""OBJECT_NAME"" : ""OBJECT_NAME"", 
    ""OBJECT_TYPE"" : ""OBJECT_TYPE""
  }, 
  ""positionType"" : ""point"", 
  ""reference"" : {
    ""id"" : 1111
  }, 
  ""objects"" : [
    {
      ""attributes"" : {
        ""OBJECT_NAME"" : ""test name"", 
        ""OBJECT_TYPE"" : ""test type""
      }, 
      ""position"" : 
      {
        ""x"" : 5, 
        ""y"" : 7
      }
    }
  ]
}";


    static void Main()
    {
        JavaScriptSerializer ser = new JavaScriptSerializer();
        Foo foo = ser.Deserialize<Foo>(json);
    }


}

Редактирование:

работы Json.NET с помощью того же JSON и классов.

Foo foo = JsonConvert.DeserializeObject<Foo>(json);

Ссылка: Сериализация и Десериализация JSON с Json.NET

129
ответ дан James Newton-King 24 November 2019 в 03:05
поделиться

Редактирование: Спасибо Marc, читайте на структуре по сравнению с проблемой класса, и Вы правы, спасибо!

я склонен использовать следующий метод для того, чтобы сделать то, что Вы описываете, с помощью статического метода JSon. Сеть:

MyObject deserializedObject = JsonConvert.DeserializeObject<MyObject>(json);

Ссылка: Сериализация и Десериализация JSON с Json.NET

Для списка Объектов, может я предлагать использовать универсальные списки, вошедшие из Вашего собственного маленького класса, содержащего attributes и position класс. Можно использовать Point структура в System.Drawing (System.Drawing.Point или System.Drawing.PointF для чисел с плавающей точкой) для Вас X и Y.

После создания объекта очень легче получить данные, которые Вы, после по сравнению с текстовым парсингом Вы иначе смотрите на.

10
ответ дан James Newton-King 24 November 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: