2012-11-30 158 views
0

如何获取此字符串并将其放入String Array或HashMap?任何参考?将JSON字符串反序列化为字符串数组

 { 
     "code" : 403, 
      "errors" : [ { 
       "domain" : "global", 
       "location" : "Authorization", 
       "locationType" : "header", 
       "message" : "The domain policy has disabled third-party Drive apps", 
       "reason" : "domainPolicy" 
      } ], 
     "message" : "The domain policy has disabled third-party Drive apps" 
    } 

====

这是我对杰克逊的解决方案:

public class TheErrorModel { 
    public int code; 
    public Collection<Error> errors; 
    public String message; 

    public TheErrorModel() { 
    } 

    public TheErrorModel(String json) 
      throws Exception { 
     ObjectMapper mapper = new ObjectMapper(); 
     TheErrorModelother = mapper.readValue(json, TheErrorModel.class); 

     this.code = other.code; 
     this.errors = other.errors; 
     this.message = other.message; 
    } 
} 

class Error { 
    public String domain; 
    public String location; 
    public String locationType; 
    public String message; 
    public String reason; 
} 

TheErrorModel theErrorModel = new TheErrorModel(json); 

所以我得到的东西像theErrorModel.message:d

+1

有很多libs在线提供。你有尝试过吗? –

+0

我有杰克逊,但我不知道使用它的想法是什么:/ – lannyboy

+0

http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/ –

回答

2

您可以试试使用GSON http://code.google.com/p/google-gson/,使用非常简单。你应该为这个json模式创建类结构。

import com.google.gson.Gson; 
class YourErrorsJSON{ 
    private String domain 
    private String location; 
    private String locationType; 
    private String message; 
    private String reason 
} 

class YourJSON { 
    private int code; 
    private YourErrorsJSON[] errors; 
    private String message; 
} 
Gson gson = new Gson(); 
YourJSON obj = gson.fromJson(json, YourJSON.class); 
+0

顺便说一句,那个消息只是一个错误,我不确定作者真的想要解析它。也许只是错误的子串就足够了。 –

1

试试这个::

JSONObject yourObj = JSONObject.fromString(input_string); 
String code = yourObj.get("code"); // code will have a value 403 
+0

JSONObject的库是什么? org.json.JSONObject? – lannyboy

+0

如果我想使用杰克逊?我不包括你需要包括的很多库 – lannyboy

+0

:: import net.sf.json.JSONArray; import net.sf.json.JSONObject; –