2017-08-04 22 views
0

jsonオブジェクトを含むJava Stringがありますが、このjsonオブジェクトを取得する方法がわかりません。String to Array JsonオブジェクトへのJava

私の文字列は、このようなものです:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 

私は、この文字列からJSONオブジェクトを取得できますか?あなたはライブラリを使用する必要があることを確認するために

+0

gson.jarまたはjson.jarを使用します。彼らはJsonObjectのコンストラクタを持っています。そこには文字列を渡すことができます。 [ここにリンクがあります](https://repo1.maven.org/maven2/com/google/code/gson/gson/2.6.2/) – Amit1011

+0

この回答を見てくださいhttps://stackoverflow.com/questions/ 5128442/how-to-convert-a-string-to-jsonobject-gson-libraryを使用する –

答えて

0

私はシンプルプレーンorg.jsonライブラリをお勧めします。文字列をJSONArrayに渡し、JSONObjectを取得します。例えば以下のようなもの:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 
JSONArray js = new JSONArray(myString); 
System.out.println(js); 
JSONObject obj = new JSONObject(js.getString(1)); 
System.out.println(obj); 

出力:

  • [1、 "{\" ステータス\ ":0、\" InstanceNumber \ ":9}"]
  • { "状態":0、 "InstanceNumber":9}

ダウンロードジャー:http://mvnrepository.com/artifact/org.json/json

1

ジャクソンまたはGsonうそ。

私は複雑なものがないときは、ほとんどgsonと働いています。 ここにあなたが求めているものの出力。私はあなたが変換したいタイプを持っていないと思います(私はObjectを取っています)。 (私はちょうどそれをプリントアウト)あなたが望むように出力オブジェクトを操作したいことがあり

run: 
[1.0, {"Status":0,"InstanceNumber":9}] 
BUILD SUCCESSFUL (total time: 0 seconds) 

:ここ

はコードです:

import com.google.gson.Gson; 

public class Json { 

    public static void main(String[] args) { 
     Gson g = new Gson(); 
     String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 
     Object p = g.fromJson(myString, Object.class); 
     System.out.println(p.toString()); 
    } 

} 

そして、ここで出力されます。 注:gson jarをクラスパスに追加することを忘れないでください。

+1

Nailed it、Excellent – sForSujit

0

任意のJsonマッピングフレームワークを使用して、StringをJavaオブジェクトに逆直列化できます。下記の実施例Jacksonでそれを行う方法を示しています。

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 
ObjectMapper mapper = new ObjectMapper(); 
List<Object> value = mapper.readValue(myString, new TypeReference<List<Object>>() {}); 
Map<String, Object> map = mapper.readValue(value.get(1).toString(), new TypeReference<Map<String, Object>>() {}); 
System.out.println(map); 

Here'sドキュメント。