2016-04-12 8 views
8

Ich versuche, ein Array aus einer Zeichenfolge mit Modified Java Script Value Schritt zu bilden. Hier ist mein Code, um eine Zeichenfolge zu analysieren und ein JSON-Objekt zu bilden.JSON.parse() funktioniert nicht in Javascript in Pentaho

var info = {}; 
var keywords = 'Adjust course (C-6),Identify underlying factors (C-4),Isolate teacher actions (C-3_)'; 
if(keywords != null && keywords != ''){ 
keywords = keywords.replace(/,/g,'","'); 
keywords = '["'+keywords+'"]'; 
info.keywords = JSON.parse(keywords); 
} 

Hier in JSON.parse() es gibt einen Fehler Syntax: Fehlendes Komma in Arrayliteral.

Kann mir bitte helfen, analysieren Sie das Array und speichern Sie in JSON-Objekt.

Vielen Dank im Voraus!

+0

Ich habe Ihren Code in der Chrome-Konsole ausgeführt und es funktioniert gut. Auch in JavaScript können Sie die if-Klausel wie folgt komprimieren: if (keywords) {...} – fikkatra

+1

Sie können auch die 'eval'-Funktion verwenden, aber seien Sie vorsichtig! – savelichalex

+0

@Arunraj Bitte zeigen Sie, was Sie nach diesem Code bekommen möchten, denke ich, dass mehr richtige Lösung für Sie haben – savelichalex

Antwort

1

Versuchen Sie dieses

if(keywords){ 
    keywords = keywords.split(','); 
    info.keywords = keywords; 
} 
1

Versuchen Sie folgendes:

function kwInfo(text) 
{ 
    return JSON.parse('["' + (text || '').split(',').join('","') + '"]'); 
} 

var text = 'Adjust course (C-6),Identify underlying factors (C-4),Isolate teacher actions (C-3_)'; 
var info = {keywords:kwInfo(text)}; 

console.log(info); 
+0

Stellen Sie sicher, dass Sie einen (respektablen) modernen (aktualisierten) Webbrowser verwenden, wie: Chrome, Firefox, Opera, Safari usw. – argon

+0

Dies ist kein reguläres Javascript, und Pentaho ist kein Browser. Es ist der Rhino-Js-Motor isoliert – jipipayo

0

Run Kessel im Konsolenmodus SpoonConsole.bat

var info = {}; 
var keywords = 'Adjust course (C-6),Identify underlying factors(C-4),Isolate 
teacher actions (C-3_)'; 

java.lang.System.out.println("Original : " + keywords); 

if(keywords != null && keywords != ''){ 
    keywords = keywords.replace(/,/g,'","'); 
    java.lang.System.out.println("Regexp applied : " + keywords); 
    keywords = '["'+keywords+'"]'; 
    java.lang.System.out.println(keywords); 
    info.keywords = JSON.parse(keywords); 
} 

Blick in die Konsole und verfolgen Sie die Fehler in der Logik

Dies ist nur die Art und Weise, die ich JavaScript-Schritt

Verwandte Themen