2016-08-20 6 views
0

私はプロジェクトがあり、JSON配列から通常の配列にデータを伝えようとしています。しかし私はこれをすることができませんでした。あなたが私のプロジェクトでどこにコードを追加するのか分かっていれば助けてくれますか?私の主な活動ファイルはこちらJSONデータをJAVAの配列に追加する方法

public class MainActivity extends AppCompatActivity { 

private TextView tvData; 
private String[] stringArray; 
protected ActionBarDrawerToggle mDrawerToggle; 
private DrawerLayout mDrawerLayout; 
private NavigationView mNavigationView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    tvData = (TextView)findViewById(R.id.bilgi); 
    setupToolbar(); 
    initNavigationDrawer(); 
    new JSONTask().execute("http://192.168.1.36:8080/urunler/kategori_goster.php"); 

} 

public class JSONTask extends AsyncTask<String,String,String> 

{ 
    @Override 
    protected String doInBackground(String... params) { 
     HttpURLConnection connection = null; 
     BufferedReader reader = null; 
     try { 
      URL url = new URL(params[0]); 
      connection = (HttpURLConnection) url.openConnection(); 
      connection.connect(); 
      InputStream stream = connection.getInputStream(); 
      reader = new BufferedReader(new InputStreamReader(stream)); 
      StringBuffer buffer = new StringBuffer(); 
      String line=""; 
      while((line = reader.readLine()) != null){ 
       buffer.append(line); 
      } 
      String finalJson = buffer.toString(); 
      JSONObject parentObject = new JSONObject(finalJson); 
      JSONArray parrentArray = parentObject.getJSONArray("uyelerimiz"); 
      StringBuffer finalBufferedData = new StringBuffer(); 
      for(int i=0;i<parrentArray.length(); i++) 
      { 
       JSONObject finalObject = parrentArray.getJSONObject(i); 
       String year = finalObject.getString("kategori_adi"); 
       finalBufferedData.append(year + " \n"); 
      } 

      return finalBufferedData.toString(); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } finally { 
      if(connection !=null) 
      { 
       connection.disconnect(); 
      } 

      try { 
       if(reader !=null) 
       { 
        reader.close(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     return null; 
    } 
    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 

     tvData.setText(result); 

    } 
} 

JSONは問題なく動作しています。 JSONデータを私の "private String [] stringArray;に追加したいここ

はJSONをフォーマットする方法である:

{ 
    "uyelerimiz":[ 
     { 
     "kategori_adi":"Bilgisayar" 
     }, 
     { 
     "kategori_adi"   ‌​:"Cep Telefonu" 
     }, 
     { 
     "kategori_adi":"Saglik" 
     }, 
     { 
     "kategori_adi":"Kirtas‌​iye" 
     } 
    ] 
} 
+0

{ "uyelerimiz":[{ "kategori_adi": "Bilgisayar"}、{ "kategori_adi": "セップTelefonu"}、{」 kategasyye ":" Saglik "}、{" kategasiye ":" Kirtasiye "}}}のようなものです。 –

+0

ここにコードを送信できますか?どのようになるだろう? –

答えて

0
private String[] parseJson(String response){ 
    try { 
     JSONObject lJsonObject = new JSONObject(response); 
     JSONArray lJsonArray = lJsonObject.getJSONArray("uyelerimiz"); 
     String[] lResult = new String[lJsonArray.length()]; 
     for (int index = 0;index<lJsonArray.length();index++){ 
      lResult[index] = lJsonArray.getJSONObject(index).getString("kategori_adi"); 
     } 
     return lResult; 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 
+0

この関数はどのように呼び出されますか?私は "プライベートString [] stringArray;を定義したい –

+0

私のJSON strigは次のようにした場合:{ "uyelerimiz":[ { "ID": "1" "kategori_adi": "Bilgisayar" }、 { "ID": "2" "kategori_adi" "セップTelefonu" }、{ "ID": "3" "kategori_adi": "サグリク" }、{ "ID": "4" "kategori_adi": "Kirtas iye" } ] }コードでは何が変更されますか? –

関連する問題