2017-08-14 9 views
0

から解析中にこれはJSONファイルからの読み込みのための私の最初のコードですが、私は、エラーメッセージが出続けるStringにJsonElementからキャストすることはできません: がJasonElementからキャストできない文字列JSONファイル

import java.io.FileReader; 

import com.google.gson.JsonObject; 
import com.google.gson.JsonParser; 

public class Json 
{ 
    public static void main(String args[]) 
{ 
    JsonParser parser = new JsonParser(); 

try 
{ 

    Object obj = parser.parse(new FileReader("C:\\Users\\dell\\eclipse- 
workspace\\Assignment\\data.json")); 

    JsonObject jsonObject = (JsonObject) obj; 

String name = (String) jsonObject.get("Name"); 
String author = (String) jsonObject.get("Author"); 
System.out.println("Name: " + name); 
System.out.println("Author: " + author); 
} 
    catch (Exception e) 
{ 
e.printStackTrace(); 
} 
    } 

} 

言い訳私は愚かな間違いのために私。 私はまだ初心者です

答えて

0

それはあなたが望むものによって異なります。

Nameは(のように、それは{ "Name": "str" }ない{ "Name": [] }でなければなりません)実際のJSON文字列値にする必要がある場合は、jsonObject.get("Name").getAsString()を言う必要があります。これは文字列ではない場合にエラーを引き起こします。これは望ましいことです。

有効なJSON値を返すjsonObject.get("Name").toString()Stringとして返します。例えば。

{ "Name": "a" } -> "a" (That's a string, 3 characters, two quote marks and an 'a') 
{ "Name": false } -> false (That's a string, 5 chars, no quotes) 
0

これは、JsonObject.get( "Name")をinvolkingすることによってJsonElementオブジェクトを取得し、Stringにキャストすることができません。多分あなたは試してみることができます:

jsonObject.get("Name").toString();