2015-07-13 2 views
1

Я делаю код с угловым, и в одном случае json возвращает одно значение как полезную нагрузку, и мне нужно его расшифровать. У меня есть такая полезная нагрузка: enter image description hereПолезная нагрузка js descrypting

Мне нужно расшифровать это. Например, следующим образом: Например, часть $ B the vaule Мне нужно только значение 14, для $ s значение -58 и т. Д. И я не знаю, hoy, я могу это сделать. На данный момент только я разделился на $.

var payload = event.eventpayload; 
var dec = payload.split("$"); 

ответ

1

Если это всегда только один символ после $, вы можете сделать что-то вроде этого

var eventpayload="$ST$I0$O0$B14.00$M1$S-58$D0000.03$X_" 
var earr = eventpayload.split("$").splice(1); 
obj={}; 
for (var i=0; i < earr.length; i++) { 
    obj[earr[i][0]] = earr[i].slice(1); 
} 
console.log(obj); 

вы также можете parseFloat() все значения как этот

var eventpayload="$ST$I0$O0$B14.00$M1$S-58$D0000.03$X_" 
var earr = eventpayload.split("$").splice(1); 
obj={}; 
for (var i=0; i < earr.length; i++) { 
    obj[earr[i][0]] = parseFloat(earr[i].slice(1)); 
} 
console.log(obj); 
1

Вы могли бы используйте регулярное выражение для извлечения значений, а затем выполните совпадения для создания словаря.

образца в C#:

const string payload = "$ST$I0$O0$B14.00$M1$S-058$D0000.03$X_"; 
var re = new Regex(@"(?<key>\$[A-Z])(?<value>[^$]*)"); 
foreach (Match m in re.Matches(payload)) { 
    Console.WriteLine("{0}: {1}", m.Groups["key"].Value, m.Groups["value"].Value); 
} 

Выход:

$S: T 
$I: 0 
$O: 0 
$B: 14.00 
$M: 1 
$S: -058 
$D: 0000.03 
$X: _ 
Смежные вопросы