var json_str = `,{"name":"Adhi Kot","id":"379","nametype":"Valid","recclass":"EH4","mass":"4239","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"32.100000","reclong":"71.800000","geolocation":{"type":"Point","coordinates":[71.8,32.1]}},{"name":"Adzhi-Bogdo (stone)","id":"390","nametype":"Valid","recclass":"LL3-6","mass":"910","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"44.833330","reclong":"95.166670","geolocation":{"type":"Point","coordinates":[95.16667,44.83333]}}`;
var i = 0;
while((i=json_str.indexOf('"recclass":"',i))!==-1) {
i+=12;
let j = json_str.indexOf('"',i);
let val = json_str.substring(i,j);
console.log(val); //выводим очередное значение
}
var obj = res.items[0].snippet.thumbnails;
var max_width = 0, max_height = 0, name = 'unknown';
for(let k in obj) if (max_width < obj[k].width) {
max_width = obj[k].width;
max_height = obj[k].height;
name = k;
}
console.log('Name: ',name,' Width: ',max_width,' Height: ',max_height);
<?php
$str = '{"name": "my "name"", "value": "123456789"}';
function fixJSON($str) {
$len = strlen($str);
$result = '';
$space = '';
$mode = 0;
for($i=0;$i<$len;$i++){
$c = $str[$i];
switch ($mode) {
case 0: //вне строки
if ($c == '"') $mode = 1;
$result .= $c;
break;
case 1: //внутри строки
if ($c == '"') {
$mode = 3;
$space = $c;
break;
}
if ($c == '\\') $mode = 2;
$result .= $c;
break;
case 2: //сразу после слеша (игнорим один любой символ)
$mode = 1;
$result .= $c;
break;
case 3: //была кавычка внутри строки
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == ',' || $c == '}' || $c == ']' || $c == ':') {
//вероятно был конец строки (шанс 99%)
$mode = 0;
$result .= $space.$c;
} else {
//мы остались внутри строки на 100%. Экранируем
$mode = 1;
$result .= '\\'.$space;
$i--; //уходим назад, т.к. вдруг это снова кавычка
}
break;
}
}
return $result;
}
echo(fixJSON($str)); //{"name": "my \"name\"", "value": "123456789"}
?>
<?php
$str = '{"say": ""my name", hi", "value": "123456789"}';
function fixJSON($str) {
$len = strlen($str);
$result = '';
$space = '';
$mode = 0;
for($i=0;$i<$len;$i++){
$c = $str[$i];
switch ($mode) {
case 0: //вне строки
if ($c == '"') $mode = 1;
$result .= $c;
break;
case 1: //внутри строки
if ($c == '"') {
$mode = 3;
$space = $c;
break;
}
if ($c == '\\') $mode = 2;
$result .= $c;
break;
case 2: //сразу после слеша (игнорим один любой символ)
$mode = 1;
$result .= $c;
break;
case 3: //была кавычка внутри строки
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == '}' || $c == ']') {
//вероятно был конец строки (шанс 99%)
$mode = 4;
$space .= $c;
}
elseif ($c == ',' || $c == ':') {
//вероятно был конец строки (шанс 90%)
$mode = 5;
$space .= $c;
} else {
//мы остались внутри строки на 100%. Экранируем
$mode = 1;
$result .= '\\'.$space;
$i--; //уходим назад, т.к. вдруг это снова кавычка
}
break;
case 4: //после спец символа
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == ',') {
//был конец строки с шансом 99.99%
$mode = 0;
$result .= $space.$c;
} else {
//внтури строки на 100%
$mode = 1;
$result .= '\\'.$space;
$i--;
}
break;
case 5: //после запятой
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif (preg_match('/[0-9"-]+/', $c)) {
//был конец строки с шансом 99.9%
$mode = 0;
$result .= $space;
$i--;
} else {
//внтури строки на 100%
$mode = 1;
$result .= '\\'.$space;
$i--;
}
break;
}
}
if ($mode>2) $result .= $space;
return $result;
}
echo(fixJSON($str)); //{"say": "\"my name\", hi", "value": "123456789"}
?>
leader.soldier = "soldier";
soldier.leader = "leader";
for (let key in obj) {
if (window[key]) obj[key] = key; //любой ваш критерий
}
var test_leader = soldier.leader && window[soldier.leader];
//Конечно, вместо window у вас будет свой объект-обертка
var s = 'energy|{"Ts":"380158","Va":"232.00","Aa":"0.37","Pa":"56","PFa":"0.65","T0":"18.94"}|div';
s = s.split('|');
s[1] = JSON.parse(s[1]);
console.log(s);
console.log(s[1].Va); //232.00
javascript:alert((e=>{var s=document.body.innerHTML; s = s.split('|'); s[1] = JSON.parse(s[1]); return s[1].Va})())
var data = {
types: {
type_1: {
max_speed: 300
},
type_2: {
max_speed: 260
}
},
TC: {
transport_1: {
color: "red",
type: "type_2"
},
transport_2: {
color: "blue",
type: "type_1"
}
}
}
var tc = data.TC.transport_1;
console.log("Car:", tc.color); //red
console.log("Speed:", data.types[tc.type].max_speed); //260
{
"types": {
"type_1": {
"max_speed": 300
},
"type_2": {
"max_speed": 260
}
},
"TC": {
"transport_1": {
"color": "red",
"type": "type_2"
},
"transport_2": {
"color": "blue",
"type": "type_1"
}
}
}