篇一 : json字符串转换为JSONObject和JSONArray .
//JSONObject
String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"}";
String value1 = null;
try
{
//将字符串转换成jsonObject对象
JSONObject myJsonObject = new JSONObject(jsonMessage);
//获取对应的值
value1 = myJsonObject.getString("数学");
}
catch (JSONException e)
{
}
System.out.println("value1="+value1);
//JSONArray
jsonMessage = "[{'num':'成绩', '外语':88, '历史':65, '地理':99, 'object':{'aaa':'1111','bbb':'2222','cccc':'3333'}}," +
"{'num':'兴趣', '外语':28, '历史':45, '地理':19, 'object':{'aaa':'11a11','bbb':'2222','cccc':'3333'}}," +
"{'num':'爱好', '外语':48, '历史':62, '地理':39, 'object':{'aaa':'11c11','bbb':'2222','cccc':'3333'}}]";
JSONArray myJsonArray;
try
{
myJsonArray = new JSONArray(jsonMessage);
for(int i=0 ; i < myJsonArray.length() ;i++)
{
//获取每一个JsonObject对象
JSONObject myjObject = myJsonArray.getJSONObject(i);
//获取每一个对象中的值
String numString = myjObject.getString("num");
int englishScore = myjObject.getInt("外语");
int historyScore = myjObject.getInt("历史");
int geographyScore = myjObject.getInt("地理");
//获取数组中对象的对象
JSONObject myjObject2 = myjObject.getJSONObject("object");
String aaaString = myjObject2.getString("aaa");
System.out.println("aaaString="+aaaString);
System.out.println("numString="+numString);
System.out.println("englishScore="+englishScore);
System.out.println("historyScore="+historyScore);
System.out.println("geographyScore="+geographyScore);
}
}
catch (JSONException e)
{
}
t262阅读网请您转载分享:
篇二 : Gson格式化输出JSON字符串
有时候在调试代码时,需要格式化输出JSON字符串,使其便于开发者/测试者查看,本文记录的就是使用Gson如何格式化输出JSON字符串。()
Gson默认的JSON输出是紧凑的JSON格式,这意味着在输出的JSON结构中没有任何空白字符,因此,在JSON输出中,字段名及其字段值,对象字段和数组中的对象间都没有空白字符,另外“null”字段在输出时会忽略(NOTE:collections/arrays中的null值会保留)。如果要使用Pretty Print输出JSON,可以使用GsonBuilder配置JsonPrintFormatter,该格式默认会输出80字符宽度,2字符缩进,右边距为4字符。
以下是配置Gson实例使用JsonPrintFormatter替代JsonCompactFormatter,Pretty Printing输出JSON字符串的例子。
Student student = new Student(12,1,"carya");Gson gson2 = new GsonBuilder().setPrettyPrinting().create();String prettyJsonStr1 = gson2.toJson(student);System.out.println("prettyJsonStr1: "+ prettyJsonStr1);
其中,Student是自定义的对象。
另外,如何利用Gson来格式化紧凑的JSON格式字符串呢?例如,如已有JSON字符串如下:{"stuNo":12,"sex":1,"name":"carya"}, 可用以下方式将其格式化。
Gson gson3 = new GsonBuilder().setPrettyPrinting().create();JsonParser jp = new JsonParser();JsonElement je = jp.parse(uglyJsonStr);String prettyJsonStr2 = gson3.toJson(je);System.out.println("prettyJsonStr2: "+ prettyJsonStr2);
输出的JSON串如下所示:
prettyJsonStr2:{"stuNo":12,"sex":1,"name":"carya"}
我的博客:
篇三 : iOS:json格式字符串转字典,字典转json格式字符串
/*!
* @brief 把格式化的JSON格式的字符串转换成字典
* @param jsonString JSON格式的字符串
* @return 返回字典
*/
json格式字符串转字典:
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {
if (jsonString == nil) {
return nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if(err) {
NSLog(@"json解析失败:%@",err);
return nil;
}
return dic;
}
字典转json格式字符串:
+ (NSString*)dictionaryToJson:(NSDictionary *)dic
{
NSError *parseError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
N()SJSONWritingPrettyPrinted ?是有换位符的。
如果NSJSONWritingPrettyPrinted 是nil 的话 返回的数据是没有 换位符的