Вместо использования динамического, когда вам нужно десериализовать JSON, я бы предложил использовать либо:
1- Если вы знаете, что json только содержит свой объект студента:
Student jsonData = JsonConvert.DeserializeObject<Student>(json);
2 - Если вы не знаете, является ли единственным содержимым в вашем JSON сам объект-ученик, но вы знаете, что он не вложен в другой объект, вы можете десериализовать строку целиком и затем выбрать, какой объект вы хотите извлечь:
var parsedObject = JObject.Parse(jsonString);
var studentObject= parsedObject["Student"].ToString();
var responseData = JsonConvert.DeserializeObject<Student>(studentObject);
Редактировать: если он вложенный, вы можете просто перебирать объекты, как если бы вы использовали пример массива:
parsedObject["NestedInThisObject"]["Student"].ToString();
Помощник CodeIgniter - это файл PHP с несколькими функциями. Это не класс.
Создайте файл и вставьте в него следующий код.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('test_method'))
{
function test_method($var = '')
{
return $var;
}
}
Сохраните это в application / helpers / . Мы назовем его «new_helper.php»
Первая строка существует, чтобы убедиться, что файл не может быть включен и запущен вне области CodeIgniter. Все после этого самоочевидно.
Это может быть в вашем контроллере , модели или представлении (не предпочтительно)
$this->load->helper('new_helper');
echo test_method('Hello World');
] Если вы используете этот помощник во многих местах, вы можете загрузить его автоматически, добавив его в файл конфигурации автозагрузки, например <ваше-веб-приложение> \ application \ config \ autoload.php
.
$autoload['helper'] = array('new_helper');
-Mathew
Чтобы создать нового помощника, вы можете следовать инструкциям от Pixel Developer , но я советую не создавать помощника только для логики, требуемой определенной частью конкретное приложение. Вместо этого используйте эту логику в контроллере, чтобы установить для массивов их окончательные предполагаемые значения. Получив это, вы передаете их в представление, используя Template Parser Class , и (надеюсь) вы можете сохранить представление чистым от всего, что выглядит как PHP, используя простые переменные или пары тегов переменных вместо echos и foreachs. , то есть:
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
вместо
<?php foreach ($blog_entries as $blog_entry): ?>
<h5><?php echo $blog_entry['title']; ?></h5>
<p><?php echo $blog_entry['body']; ?></p>
<?php endforeach; ?>
Еще одним преимуществом этого подхода является то, что вам не нужно беспокоиться о добавлении экземпляра CI, как если бы вы использовали пользовательские помощники для выполнения всей работы.
Some code that allows you to use CI instance inside the helper:
function yourHelperFunction(){
$ci=& get_instance();
$ci->load->database();
$sql = "select * from table";
$query = $ci->db->query($sql);
$row = $query->result();
}