讀取JSON字符串中的一維、二維數組數據


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
//從文件中讀取數據創建JSON字符串 對象filePath = "levels/data1.txt"
public JSONObject createJSON(Context context, String filePath)
{
JSONObject json = null;

try
{
InputStream fileIn = context.getAssets().open(filePath);
byte[] tmp = new byte[fileIn.available()];
fileIn.read(tmp);
String data = new String(tmp, "UTF-8");
fileIn.close();

json = new JSONObject(data);
}
catch (Exception e)
{
e.printStackTrace();
}

return json;
}
//從json中, 讀取屬性名為str的數據, 到一維數組Data中
public int[] readOneDimensionDataInt(JSONObject json, String str)
{
int[] Data = null;
try
{
boolean b = json.has(str);
if(json.has(str))
{
JSONArray Array1 = json.getJSONArray(str);//獲取屬性名對應的一維數組
Data = new int[Array1.length()];//創建數組

for(int j = 0; j < Array1.length(); j ++)
Data[j] = Array1.getInt(j);//獲取一維數組中的數據
}
}
catch (JSONException e)
{
e.printStackTrace();
}
return Data;
}
//從json中, 讀取屬性名為str的數據, 到二維數組Data中
public int[][] readTwoDimensionDataInt(JSONObject json, String str)
{
int[][] Data = null;
try
{
if(json.has(str))
{
JSONArray Array1 = json.getJSONArray(str);//獲取屬性名對應的二維數組

Data = new int[Array1.length()][];
for(int i = 0; i < Array1.length(); i ++)
{
JSONArray Array2 = Array1.getJSONArray(i);//獲取一維數組

Data[i] = new int[Array2.length()];
for(int j = 0; j < Array2.length(); j ++)
Data[i][j] = Array2.getInt(j);//獲取一維數組中的數據
}
}
}
catch (JSONException e)
{
e.printStackTrace();
}
return Data;
}
//從json中, 讀取屬性名為str的數據, 到二維數組Data中
public double[][] readTwoDimensionData(JSONObject json, String str)
{
double[][] Data = null;
try
{
if(json.has(str))
{
JSONArray Array1 = json.getJSONArray(str);//獲取屬性名對應的二維數組

Data = new double[Array1.length()][];
for(int i = 0; i < Array1.length(); i ++)
{
JSONArray Array2 = Array1.getJSONArray(i);//獲取一維數組

Data[i] = new double[Array2.length()];
for(int j = 0; j < Array2.length(); j ++)
Data[i][j] = Array2.getDouble(j);//獲取一維數組中的數據
}
}
}
catch (JSONException e)
{
e.printStackTrace();
}
return Data;
}


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: