0

私は別のSOユーザーによって提案されたアプローチを使用しようとしています:https ://stackoverflow.com/a/1820837/1324861

しかし、運がなければ。JSON.stringify()基本的に、正規表現パターンを実行するために使用して文字列に変換した大きなJSONオブジェクトがあります。{ }私の考えは、検索語「サッカー」が中括弧の間のどこかに見つかった場合、その間にすべてを返すことです。

私のデータは次のようになります。

{
  {
    User: "Peter",
    Hobbies: "Soccer, Football, ...",
    more...
  },
  {
    User: "Simon",
    Hobbies: "Pingpong, Soccer, Badminton",
    more...
  }
}

したがって、文字列化されたJSONオブジェクトで「soccer」を検索した場合、ユーザーに関するすべての情報を取得したいと思います。これどうやってするの?

4

4 に答える 4

2

これからインスピレーションを得ることができます(jsonを文字列に変換せずに):

var myData = [
  {
    User: "Peter",
    Hobbies: "Soccer, Football, ..."
  },
  {
    User: "Simon",
    Hobbies: "Pingpong, Soccer, Badminton"
  }
];
var results = "";
for (var i = 0; i < myData.length; i++) {
    if (myData[i]["Hobbies"].indexOf("Soccer") != -1) {
        results += JSON.stringify(myData [i]) + "\n";
    }                  
}
alert(results);
于 2012-07-24T15:50:28.777 に答える
1

JSONオブジェクトを文字列化して正規表現を適用するのは意味がないというわけではありませんが(シャダー)、CPUです...次のようなものを使用できます:

\{[^{]+soccer[^}]+}

これはあなたが探しているものを捕まえるはずです。しかし...正規表現を使用してJSONを解析しています...Nononono..。

于 2012-07-24T15:41:04.690 に答える
0

「{[^}]*(S | s)occer[^}]*}」のようなもの

于 2012-07-24T15:42:13.537 に答える
0
var json = [
  {
    User: "Peter",
    Hobbies: "Soccer, Football, ..."
  },
  {
    User: "Simon",
    Hobbies: "Pingpong, Badminton"
  }
];


var jsonString = JSON.stringify(json);
var regEx = /(\{.*?Soccer.*?\})/;
var user = jsonString.match(regEx)[1];
document.write(user);
于 2012-07-24T16:02:51.927 に答える