Если вы не видите никакого результата из вашего кода PHP и / или видите части своего литерального исходного кода PHP на веб-странице вы можете быть уверены, что ваш PHP на самом деле не выполняется. Если вы используете View Source в своем браузере, вы, вероятно, видите весь исходный код PHP-файла. Поскольку PHP-код встроен в теги , браузер попытается интерпретировать их как HTML-теги, и результат может выглядеть несколько смущенным.
Чтобы на самом деле запустить ваши PHP-скрипты, вам нужно:
* Если вы не переконфигурируете его, все может быть настроено.
Это последнее особенно важно. Двойной щелчок по файлу, скорее всего, откроет его в вашем браузере, используя такой адрес, как:
file://C:/path/to/my/file.php
Это полностью обходит любой веб-сервер, который у вас может быть запущен, и файл не интерпретируется. Вам нужно посетить URL-адрес файла на вашем веб-сервере, вероятно, что-то вроде:
http://localhost/my/file.php
Вы также можете проверить, используете ли вы короткие открытые теги вместо
и ваша PHP-конфигурация отключила короткие открытые теги.
Также см. PHP-код не выполняется, вместо этого код отображается на странице
Я не знаю о 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);
Редактирование: Спасибо Marc, читайте на структуре по сравнению с проблемой класса, и Вы правы, спасибо!
я склонен использовать следующий метод для того, чтобы сделать то, что Вы описываете, с помощью статического метода JSon. Сеть:
MyObject deserializedObject = JsonConvert.DeserializeObject<MyObject>(json);
Ссылка: Сериализация и Десериализация JSON с Json.NET
Для списка Объектов, может я предлагать использовать универсальные списки, вошедшие из Вашего собственного маленького класса, содержащего attributes
и position
класс. Можно использовать Point
структура в System.Drawing
(System.Drawing.Point
или System.Drawing.PointF
для чисел с плавающей точкой) для Вас X и Y.
После создания объекта очень легче получить данные, которые Вы, после по сравнению с текстовым парсингом Вы иначе смотрите на.