<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Неофициальный форум DLNA Home Media Server &mdash; TJson]]></title>
		<link>https://hms.lostcut.net/viewtopic.php?id=304</link>
		<atom:link href="https://hms.lostcut.net/extern.php?action=feed&amp;tid=304&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «TJson».]]></description>
		<lastBuildDate>Wed, 04 Jan 2017 19:28:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: TJson]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=7110#p7110</link>
			<description><![CDATA[<p>Есть два класса: TJsonObject и TJsonArray. Первый - общий, для работы с JSON как с объектом, второй для работы как с массивом.<br />У TJsonObject есть свойство Count, которое отвечает за количество свойств в объекте.<br />У TJsonArray - свойство Length.</p><p>У любого класса можно посмотреть в справочнике функций в редакторе все их методы и свойства, которые у них есть.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Пример на C++Script</div><div class="fancy_spoiler"><div class="wh_markdown"><div class="markdown-body"><pre><code class="language-hmscpp">{
  int nCount, nAge; string sData, sName; TJsonObject JSON; TJsonArray JSONARRAY;
  
  sData = '{ "name": "Вася", "age": 35, "isAdmin": false, "friends": [0,1,2,3] }';
  
  JSON = TJsonObject.Create();
  try {
    JSON.LoadFromString(sData);
    sName     = JSON.S["name"   ];
    nAge      = JSON.I["age"    ];
    JSONARRAY = JSON.A["friends"];
    nCount    = JSONARRAY.Length;
    
  
  } finally { JSON.Free(); }
  
  ShowMessage(Format("Имя: %s, Возраст: %d, Количество друзей: %d", [sName, nAge, nCount]));
 
}
</code></pre>
</div></div></div></div><p>А вообще, я так привык к подсказкам при наборе объектов, где вываливается список доступных свойств или методов у объекта, что теперь и не могу жить без <a href="https://hms.lostcut.net/viewtopic.php?id=131">аддона</a>, специально для этого сделанного. Там становится всё ещё проще. После набора точки будет показано окно с доступными функциями и их описанием. Намного подробней, чем во встроенном справочнике.</p><p>Методы S, I, B... у этих объектов - это просто вспомогательные функции, которые возвращают значение в нужном типе (конвертация в string, integer, boolean и проч.)</p><p>P.S.:<br /></p><div class="quotebox"><cite>slim8020 пишет:</cite><blockquote><p>И можно ли к элементам массива обращаться через [1], например?</p></blockquote></div><p>Да, можно. Начиная с нуля.<br />Кстати, можно даже обращаться к элементам массива через строку по именам свойств и номеру, разделённых слешем.<br />Например:<br />JSON.S[&quot;friends\\0&quot;] (двойной слеш, если это C++Script, если PascalScript - одинарный слеш).</p>]]></description>
			<author><![CDATA[null@example.com (WendyH)]]></author>
			<pubDate>Wed, 04 Jan 2017 19:28:35 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=7110#p7110</guid>
		</item>
		<item>
			<title><![CDATA[TJson]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=7106#p7106</link>
			<description><![CDATA[<p>Есть вопрос, как обращаться с обектом TJson?<br />Т.е. если это массив, есть ли аналог .length? И можно ли к элементам массива обращаться через [1], например?</p>]]></description>
			<author><![CDATA[null@example.com (slim8020)]]></author>
			<pubDate>Wed, 04 Jan 2017 16:36:01 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=7106#p7106</guid>
		</item>
	</channel>
</rss>
