0

以下の JSON ファイルから、 と を抽出X TimeY Timeます。これを行う最も簡単な方法は何ですか?

{
    "Timestamp": "Mon Mar 16 21:37:22 EDT 2015",
    "Event": "Reporting  Time",
    "Message": "load for http://xxx.xx.xx.xx:1xxxx/operations&proxy=www.mywebsite.co.nz&send=https://xxx.xx.xx.xx:xxxx took (X Time: 306 ms, Y Time: 1923 ms)StatusCode: Unknown<br>Cookies: nzh_weatherlocation=12; dax_ppv=11|NZH:home|NZH:home|NZH:home|9|undefined; Safari/537.36<br>CPUs: 2<br>Language: en-GB",

}
4

3 に答える 3

1

grep を使用できます。

$ grep -o '[YX]\s*Time:\s*[^,)]*' file
X Time: 306 ms
Y Time: 1923 ms
  • [YX]Xまたは_Y

  • \s*0 個以上の空白文字に一致します。

  • Time:\s*Time文字列とそれに続く 0 個以上のスペースに一致します。

  • [^,)]*任意の文字に一致するがコンマまたは), 0 回以上一致しない否定文字クラス。

于 2015-03-18T03:44:56.480 に答える
-1

まず第一に、Gson または Jackson ライブラリ (シリアル化/逆シリアル化に使用される) json オブジェクトをより簡単にすることをお勧めします。

しかし、もし私があなただったら、この方法で手動で作成します:

JsonObject MyJson= new JsonObject(yourstring);

1.- X 時間または Y 時間を取得するには:

String FullMessage=MyJson.getString("message");

int XPosition=FullMessage.indexOf("X Time:");
int YPosition=FullMessage.indexOf("Y Time:");
int EndYPosition=FullMessage.indexOf("ms)");

String XTime=FullMessage.substring(XPosition,Yposition);
String YTime=FullMessage.subString(Yposition,EndYPosition);

/* その方法で x と y のデータを取得できます。テストはしていませんが、主なアイデアを書きます。*/

2.-そして、URLを書くのは簡単です。それを作るだけです:

MyObject.putString("url","www.mywebsite.co.nz"); //and thats all

しかし、シリアライザー/デシリアライザー ライブラリを使用することをお勧めします。その方が簡単で優れています。

よろしく。

于 2015-03-18T03:53:13.783 に答える