um texto json deve conter pelo menos dois octetos
<p>eu recebi esse erro e não consegui encontrar uma resposta razoável para essa pergunta, então pensei em escrever um resumo do problema.</p><p>se você executar esse trecho no irb:</p><pre><code>json.parse( nil ) </code></pre><p>você verá o seguinte erro:</p><pre><code>typeerror: can't convert nil into string </code></pre><p>eu esperava que a função retornasse <code>nil</code>, e não um <code>typeerror</code>. se você converter todas as entradas usando <code>to\_s</code>, verá o erro do octeto:</p><pre><code>json::parsererror: a json text must at least contain two octets! </code></pre><p>tudo bem e bem. se você não sabe o que é um octeto, leia esta postagem para obter um resumo e uma solução: <a href="https://stackoverflow.com/questions/7200554/what-is-json-octet-and-why-are-two-required">o que é um octeto json e por que dois são necessários?</a> </p><p><strong> solução </strong></p><p>a variável que você está passando é uma sequência vazia. não tente usar uma string vazia no método <code>json.parse</code>.</p><p><strong> pergunta </strong></p><p>então, agora eu sei a causa do erro, que padrão devo usar para lidar com isso? eu sou um pouco repugnante por consertar um macaco na biblioteca json para permitir valores <code>nil</code>. todas as sugestões serão muito apreciadas.</p>
<pre><code>parsed = json &amp;&amp; json.length &gt;= 2 ? json.parse(json) : nil </code></pre><p>mas realmente a biblioteca deve ser capaz de lidar com este caso e retornar nulo. navegadores da web com suporte json interno parecem funcionar exatamente como você espera, afinal.</p><hr><p>ou para fazer isso com um mini patch apenas um pouco intrusivo:</p><pre><code>module json def self.parse\_nil(json) json.parse(json) if json &amp;&amp; json.length &gt;= 2 end end parsed = json.parse\_nil(json) </code></pre>
<p>a especificação json <em>requer</em> suporte utf-8 por decodificadores. como resultado, todos os decodificadores json podem manipular o utf-8 tão bem quanto eles podem manipular as seqüências numéricas de escape. esse também é o caso dos intérpretes de javascript, o que significa que o jsonp também lidará com o json codificado em utf-8.</p><p>a capacidade dos codificadores json de usar as seqüências numéricas de escape apenas oferece mais opções. uma razão pela qual você pode escolher as seqüências de escape numéricas seria se um mecanismo de transporte <em>entre</em> seu codificador e o decodificador pretendido não é seguro para binário.</p><p>outro motivo pelo qual você pode querer usar sequências de escape numéricas é impedir que determinados caracteres apareçam no fluxo, como <code>&lt;</code>, <code>&amp;</code> e <code>"</code>, que podem ser interpretados como sequências html se o código json for colocado sem escapar para html ou um navegador interpretar incorretamente como html. isso pode ser uma defesa contra injeção de html ou scripts entre sites (note: alguns caracteres devem ter escape em json, incluindo <code>"</code> e <code>\</code>).</p><p>algumas estruturas, incluindo a implementação do json no php, <em>sempre</em> fazem as seqüências numéricas de escape no lado do codificador para qualquer caractere fora do ascii. isso é destinado a compatibilidade máxima com mecanismos de transporte limitados e similares. no entanto, isso não deve ser interpretado como uma indicação de que os decodificadores json têm um problema com o utf-8.</p><p>então, eu acho que você só poderia decidir qual usar assim:</p><ul> <li> <p>basta usar o utf-8, a menos que seu método de armazenamento ou transporte entre o codificador e o decodificador não seja seguro para binário.</p> </li> <li> <p>caso contrário, use as seqüências de escape numéricas.</p> </li> </ul> Você provavelmente está pensando sobre o termo **octeto** que é muitas vezes usado como sinônimo de um caractere de byte único (não-unicode). Octeto neste caso significa oito bits. Um personagem pode ser oito ou dezesseis ou mesmo mais bits, mas um octeto é sempre oito bits. <p>tente isto:</p><pre><code>$str = preg\_replace\_callback('/\\\\u([0-9a-fa-f]{4})/', function ($match) { return mb\_convert\_encoding(pack('h*', $match[1]), 'utf-8', 'ucs-2be'); }, $str); </code></pre><p>caso seja baseado em utf-16, c/c++/java/json-style:</p><pre><code>$str = preg\_replace\_callback('/\\\\u([0-9a-fa-f]{4})/', function ($match) { return mb\_convert\_encoding(pack('h*', $match[1]), 'utf-8', 'utf-16be'); }, $str); </code></pre> <p>oi, marcélio!</p>
<p>o arquivo foi disponibilizado com esse erro de sintaxe, ai quando baixamos ele e utilizamos, recebemos esse erro, mas é só corrigir a letra <code>k</code> para minúscula que é resolvido.</p> olá victor, tudo bem?o problema do seu código é que você está declarando o vetor de strings de maneira incorreta. o certo é usar assim: char nome[5][100]; onde o primeiro par de colchetes é o ta... <p>oi andré tudo bem?</p>
<p>verifique se o arquivo não foi salvo como .txt ao invés de .java</p>
<p>enquanto o professor não chega na parte da ide eclipse você pode também usar esse site <a href="https://www.jdoodle.com/online-java-compiler" rel="nofollow">https://www.jdoodle.com/online-java-compiler</a> para testar os códigos java.</p> <p>usando <a href="http://ruby-doc.org/core-1.9.3/string.html#method-i-scan"><code>scan</code></a> deve fazer o truque:</p><pre><code>string.scan(/regex/) </code></pre> <pre><code>for (iterator&lt;string&gt; i = someiterable.iterator(); i.hasnext();) { string item = i.next(); system.out.println(item); } </code></pre><p>note que se você precisar usar <code>i.remove();</code> no seu loop, ou acessar o iterador real de alguma forma, você não pode usar o idioma <code>for ( : )</code>, já que o iterador é meramente inferido.</p><p>como foi observado por denis bueno, este código funciona para qualquer objeto que implemente a interface <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/iterable.html"><code>iterable</code></a> .</p><p>além disso, se o lado direito do idioma <code>for (:)</code> for um objeto <code>array</code> em vez de <code>iterable</code>, o código interno usará um contador de índice int e verificará <code>array.length</code>. veja o <a href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.14.2">java language specification</a> .</p> <p>oi joão, tudo bem ?</p>
<p>acho que tem algo que pode assumir, por exemplo, tudo que for um singleton, você pode deixar no escopo de aplicação, acho que dessa forma seu pensamento pode ficar mais claro.</p> <p>olá joviane!</p>
<p>eu já fiz este curso, mas não é abordado muitos metodos.</p>
<p>a minha pergunta foi baseada neste link <a href="https://docs.oracle.com/javase/7/docs/api/java/sql/resultset.html" rel="nofollow">https://docs.oracle.com/javase/7/docs/api/java/sql/resultset.html</a></p>
<p>quando vi a quantidade de itens, me surgiu esta dúvida.</p>
<p>tipo: como usar first(), next(), isbeofrefirst().. e por aí vai.</p>
<p>obrigado</p>