簡體   English   中英

如何在Android的字符串中獲取具有多個值的json

[英]how to get json which has multiple values in a string in android

我有一個json ,它具有多個以逗號分隔的值,這些值以array的形式出現。我想分別獲取技能和平台字符串。能幫我嗎?

我想在文本中顯示技能字符串和平台字符串。

請幫我。

格式為:

{
    "data": [
        {
            "skills": "ANDROID SDK, ANIMATION, ANGULARJS,",
            "platforms": "IOS Application, Social Networking, Online shopping Sites, Web Application"
        }
    ],
    "status": 100
}

試試這個

                       try {
                            JSONObject ob = new JSONObject(response);

                            int status = ob.getInt("status");

                            if (status == 100) {

                            JSONArray ja = ob.getJSONArray("data");

                            for (int i = 0; i < ja.length(); i++) {

                                values = new HashMap<>();

                                JSONObject vj = ja.getJSONObject(i);

                                String skills = vj.getString("skills "));

                                String platforms=vj.getString("platforms"));

                                data.add(values);
                            }

使用'split()'拆分這兩個字符串

                  List<String> skillsArray = Arrays.asList(skills.split(","));
                  List<String> platformsArray= Arrays.asList(platforms.split(","));
String in = "your json";
JSONObject jsonObj = new JSONObject(in);

// Getting JSON Array node
JSONArray jsonarray = jsonObj.getJSONArray("data");

for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonobject = jsonarray.getJSONObject(i);
    String skills = jsonobject.getString("skills");
    String platforms = jsonobject.getString("platforms");
}

嘗試這個

JSONObject jsonObject = new JSONObject("Your json response");    

JSONArray jsonArray = jsonObject.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {

    JSONObject jsonobject = jsonArray.getJSONObject(i);

    String skill = jsonobject.getString("skills");
    String platforms = jsonobject.getString("platforms");


    String[] skillsArray = skill.split(Pattern.quote(","));

    String[] platformsArray = platforms.split(Pattern.quote(","));

    for (int j=0; j<skillsArray.length; j++)
    {
        Log.i("Skill Value ", "=" + skillsArray[j]);
    }

    for (int j=0; j<platformsArray.length; j++)
    {
        Log.i("platforms Value ", "=" + platformsArray[j]);
    }
}

產量

在此處輸入圖片說明

你可以試試看

  JSONObject jsonObject = null;
    try {
        jsonObject = new JSONObject("JSON_STRING");
        JSONArray jsonArray = jsonObject.getJSONArray("data");
        for (int i = 0; i < jsonArray.length(); i++) {

            JSONObject jsonobject = jsonArray.getJSONObject(i);
            String skills = jsonobject.getString("skills");
            String[] seperateData = skills.split(Pattern.quote(","));
            for (int j = 0; j < seperateData.length; j++) {
                Log.e("Your Skill Value-> ", seperateData[j]);
            }

            String platforms = jsonobject.getString("platforms");
            seperateData = platforms.split(Pattern.quote(","));
            for (int j = 0; j < seperateData.length; j++) {
                Log.e("Your Platform Value-> ", seperateData[j]);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

首先將您的輸出字符串轉換為json。 請注意,輸出字符串是包含您在上面發布的json格式結果的字符串。以下是有關如何執行此操作的代碼:

JSONObject myJsonResponse = new JSONObject(yourString);

下一個是數組。 這就是您將獲得它並對其進行迭代的方式。

JSONArray jsonarray = jsonObj.getJSONArray("data");

for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject innerJsonObject= jsonarray.getJSONObject(i);
    String skills = innerJsonObject.getString("skills");
    String platforms = innerJsonObject.getString("platforms");
}

現在,您已經獲得了必填字段,並且現在可以通過String技能和平台執行任何String函數。

快樂的編碼。

最好的方法是創建一個模型類,例如:

public class MyModel{
Properties [] data;

class Properties{
 public String skills;
 public String platforms;
}
}

那么您可以像下面這樣解析字符串以使用Gson庫進行建模:

MyModel myModel = new Gson().fromJson(yourString, MyModel.class)

因此所有數據都在myModel對象中,您可以使用

myModel.data[0].skills

要將Gson庫添加到您的項目中,請在下面添加到您的應用gradle文件中:

compile 'com.google.code.gson:gson:2.8.1'
class Data{
   public String skills;
   public String platforms;
}

Gson gson = new Gson();
JSONArray dataArray = response.getJSONArray("data");
List<Data> dataList= gson.fromJson(dataArray toString(), new TypeToken<List<Data>>() {
}.getType());

試試這個。.它將使解析更加容易。

實施'com.google.code.gson:gson:2.8.0'

試試這個,您將獲得逗號分隔的所有值

jsonString =從服務器端獲取字符串

String[] separated = jsonString.split(",");
            StringBuilder s = new StringBuilder(10000);

            for (int i = 0; i < separated.length; i++) {

                if (i == separated.length - 1) {
                    s.append(separated[i].trim() + "");
                } else {
                    s.append(separated[i].trim() + ",\n");
                }
            }
            //tvDisplayAddress.setText(s);
            Log.e("VALUES: ",s+"");

首先解析您的JSON:

JSONObject jsonObj = new JSONObject(in);
JSONArray jsonarray = jsonObj.getJSONArray("data");

for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonobject = jsonarray.getJSONObject(i);
    String skills = jsonobject.getString("skills");
    String platforms = jsonobject.getString("platforms");
}

然后拆分您的字符串值:

String skills = "ANDROID SDK, ANIMATION, ANGULARJS";
    String[] separated = CurrentString.split(",");
    separated[0]; // this will contain "ANDROID SDK"
    separated[1]; // this will contain " ANIMATION"
    separated[2]; // this will contain " ANGULARJS"

您必須刪除第二個字符串的空格:

separated[1] = separated[1].trim();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM