2017-11-19 5 views
-4

私はAPIからの戻り値であるオブジェクトをフォローしており、それらをjavascriptまたはc#のいずれかの配列に変換したいと思います。有効な配列に分割する方法

私はjsonオブジェクト、分割関数などに変換しようとしましたが、私のために働いていません。

javascriptでsplit関数を使用しているときに例外Uncaught SyntaxError: Unexpected token :がスローされます。

+3

これは有効な構造ではありません。それはどこに生成されますか? – charlietfl

+0

どのようなタイプですか? –

+0

はい、私は理解していますが、私たちができることは残念ながら私はAPIレスポンスを変更する権限がありません。 –

答えて

0

私は(以下@rockスターにより示唆されるように)クライアント側の代わりに問題を解決するために、C#のコードを選択してください。

string[] domSelectors = selectors.Replace("\"", "").Split(new string[] { "[", ",", "]" }, StringSplitOptions.RemoveEmptyEntries); 
foreach (var domSelector in domSelectors) 
{ 
    string[] arrayElements = domSelector.Split(':'); 
    string selector = string.Join(":", arrayElements.Skip(1)); 
} 

私は自分のプロジェクトでAPIを制御できず、問題を解決したいと考えている他の人に役立つことを願っています。

2

大括弧を中括弧で置き換えることで、有効なJSONに変換できます。

var data = '["1":"h1:first","2":".content a > img","3":"#content div p"]'; 
var json = `{ ${data.trim().slice(1, -1)} }`; 

次にJSON.parseあなたが以前に試したようです。配列を必要とし、実際のインデックス番号を気にしない場合は、Object.valuesを使用して値の配列を取得できます。

var data = '["1":"h1:first","2":".content a > img","3":"#content div p"]'; 
 
var json = `{ ${data.trim().slice(1, -1)} }`; 
 

 
console.log(json); 
 

 
var parsed = JSON.parse(json); 
 

 
console.log(parsed); 
 

 
var array = Object.values(parsed); 
 

 
console.log(array);

+0

文字列オブジェクト "[" "1": "値1"] "で動作しますか? –

+0

@MayankModi:はい、外側の二重引用符が実際に文字列データの一部ではないと仮定します。 –

+0

OKロックスター、答えとサポートに感謝します。しかし、私はc#を使用してサーバー側から問題を修正しました。 –

関連する問題