在本文中,我们将给您介绍关于POSTjson字典的详细内容,并且为您解答$postjson的相关问题,此外,我们还将为您提供关于fastjson--Gson生成Json字符串,并且解析Json字符串生
在本文中,我们将给您介绍关于POST json字典的详细内容,并且为您解答$post json的相关问题,此外,我们还将为您提供关于fastjson--Gson生成Json字符串,并且解析Json字符串生成对象、golang beego接受post json字符串解析返回JSON数据、iOS JSON字符串转化为字典-字典转Json字符串-、ios – SwiftyJSON字典解析的知识。
本文目录一览:- POST json字典($post json)
- fastjson--Gson生成Json字符串,并且解析Json字符串生成对象
- golang beego接受post json字符串解析返回JSON数据
- iOS JSON字符串转化为字典-字典转Json字符串-
- ios – SwiftyJSON字典解析
POST json字典($post json)
我正在尝试以下操作:内部带有字典的模型在第一个ajax请求上发送该模型,然后将结果再次序列化,然后将其发送回控制器。
这应该测试我可以在模型中找回字典。没用
这是我的简单测试:
public class HomeController : Controller{ public ActionResult Index (T a) { return View(); } public JsonResult A(T t) { if (t.Name.IsEmpty()) { t = new T(); t.Name = "myname"; t.D = new Dictionary<string, string>(); t.D.Add("a", "a"); t.D.Add("b", "b"); t.D.Add("c", "c"); } return Json(t); }}//modelpublic class T{ public string Name { get; set; } public IDictionary<string,string> D { get; set; }}
JavaScript:
$(function () { var o = { Name: ''somename'', "D": { "a": "b", "b": "c", "c": "d" } }; $.ajax({ url: actionUrl(''/home/a''), contentType: ''application/json'', type: ''POST'', success: function (result) { $.ajax({ url: actionUrl(''/home/a''), data: JSON.stringify(result), contentType: ''application/json'', type: ''POST'', success: function (result) { } }); } });});
在Firebug中,接收到的json和发送的json是相同的。我只能假设有些东西在途中迷路了。
有人知道我在做什么错吗?
答案1
小编典典由于JsonValueProviderFactory的实现方式,不支持绑定字典。
fastjson--Gson生成Json字符串,并且解析Json字符串生成对象
json.jar地址下载 点击打开链接
+++++++++++++++++++++++++++++先看fastjson的使用方法++++++++++++++++++++++++++++++++
Student
package com.example.fastjson; public class Student { private String name; private int age; /** * 默认的构造方法必须要写,不然是无法解析的 */ public Student() { } public Student(String name,int age){ this.name = name; this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Student [name=" + name + ",age=" + age + "]"; } }
Grade
package com.example.fastjson; import java.util.ArrayList; import java.util.List; public class Grade { private String gradeName; private List<Student> students = new ArrayList<Student>(); public Grade() { } public Grade(String gradeName) { this.gradeName = gradeName; } public String getGradeName() { return gradeName; } public void setGradeName(String gradeName) { this.gradeName = gradeName; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } }
MainActivity
package com.example.fastjson; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SimplePropertyPreFilter; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1、1输出javaBean的json格式 */ Student student = new Student("dandy",27); String jsonStudent1 = JSON.toJSONString(student); String jsonStudent2 = JSON.toJSONString(student,true); //jsonStudent:{"age":27,"name":"dandy"} Log.i("TAG","jsonStudent1 standard:"+jsonStudent1); Log.i("TAG","jsonStudent2 true:"+jsonStudent2); /** * 1、2输出javaBean的特定属性json格式 * new SimplePropertyPreFilter(实体类.class,"字段一","字段二"); */ SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Student.class,"name"); String jsonStudent = JSON.toJSONString(student,filter); Log.i("TAG","jsonStudent filter:"+jsonStudent); /** * 1、3输出复杂的javaBean(带集合的) */ Grade grade = new Grade("高一"); grade.getStudents().add(new Student("dandy",27)); grade.getStudents().add(new Student("Tabolt",28)); String jsonGrade = JSON.toJSONString(grade); Log.i("TAG","jsonGrade:"+jsonGrade); /** * 2、1Json生成javaBean对象实例 */ String json = JSON.toJSONString(new Student("Tabolt",28)); Student studentBean = JSON.parSEObject(json,Student.class); Log.i("TAG","studentBean:"+studentBean); /** * 2、2Json生成javaBean对象实例 集合 */ List<Student> students = new ArrayList<Student>(); for(int i = 0;i < 5;i++){ Student studentFor = new Student("dandy_"+i,26+i); students.add(studentFor); } String jsonFor = JSON.toJSONString(students); List<Student> stus1 = JSON.parseArray(jsonFor,Student.class); List<Student> stus2 = JSON.parSEObject(jsonFor,new TypeReference<List<Student>>(){}); for(Student stu:stus1){ Log.i("TAG","studentBean:"+stu.toString()); } for(Student stu:stus2){ Log.i("TAG","studentBean:"+stu.toString()); } } }
log输出如下。。。
+++++++++++++++++++++++++++++先看Gson的使用方法++++++++++++++++++++++++++++++++
package com.example.gsondemo; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import com.google.gson.Gson; import com.google.gson.reflect.Typetoken; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1、1gson解析对象 */ Gson gson = new Gson(); Student student = new Student("dandy",27); String stuStr = gson.toJson(student); Log.i("TAG","str:" + stuStr); /** * 1、2gson解析数组对象 */ Grade grade = new Grade("高一"); grade.getStudents().add(new Student("dandy",27)); grade.getStudents().add(new Student("Tabolt",28)); String str = gson.toJson(grade); Log.i("TAG","str:" + str); /** * * 2、1 gson解析字符串为javaBean对象 */ Student fromJson2Stu = gson.fromJson(stuStr,Student.class); Log.i("TAG","fromJson2Stu-->" + fromJson2Stu.toString()); /** * 2、2gson解析字符串为javaBean对象集合 */ List<Student> students = new ArrayList<Student>(); for (int i = 0; i < 5; i++) { Student studentFor = new Student("dandy_" + i,26 + i); students.add(studentFor); } String jsonFor = gson.toJson(students); List<Student> fromJson2StuArr = gson.fromJson(jsonFor,new Typetoken<List<Student>>() { }.getType()); for (int i = 0; i < fromJson2StuArr.size(); i++) { Student student2 = fromJson2StuArr.get(i); Log.i("TAG","student2-->" + student2.toString()); } } }
golang beego接受post json字符串解析返回JSON数据
在 API 的开发中,我们经常会用到JSON
或XML
来作为数据交互的格式,如何在 beego 中获取 Request Body 里的 JSON 或 XML 的数据呢?
- 在配置文件里设置
copyrequestbody = true
- 在 Controller 中
- json 用来解析JSON的包
- ob定义的struct
func (this *ObjectController) Post() { var ob models.Object json.Unmarshal(this.Ctx.Input.RequestBody,&ob) objectid := models.AddOne(ob) this.Data["json"] = "{\"ObjectId\":\"" + objectid + "\"}" this.ServeJSON() }
iOS JSON字符串转化为字典-字典转Json字符串-
1. 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;
}
2. 字典转Json字符串
// 字典转json字符串方法
-(NSString *)convertToJsonData:(NSDictionary *)dict
{
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString;
if (!jsonData) {
NSLog(@"%@",error);
}else{
jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
}
NSMutableString *mutStr = [NSMutableString stringWithString:jsonString];
NSRange range = {0,jsonString.length};
//去掉字符串中的空格
[mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
NSRange range2 = {0,mutStr.length};
//去掉字符串中的换行符
[mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];
return mutStr;
}
ios – SwiftyJSON字典解析
例如,假设从服务器返回的JSON是:
{ "data":{ "id":"92","name":"harry","username":"Hazza" },"error":false }
我想获取用户名字符串,所以为此我使用以下方法获取数据对象:
let data = json["data"].dictionaryValue
然后为了获取我希望能够做的用户名字符串
let username = data["username"].stringValue
但是,这会返回一个错误,说'(String,JSON)没有名为’.stringValue’的成员.
这个看似简单的问题在哪里出错了?
谢谢.
解决方法
if let username = json["data"]["username"].string { println(username) }
关于POST json字典和$post json的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于fastjson--Gson生成Json字符串,并且解析Json字符串生成对象、golang beego接受post json字符串解析返回JSON数据、iOS JSON字符串转化为字典-字典转Json字符串-、ios – SwiftyJSON字典解析等相关知识的信息别忘了在本站进行查找喔。
本文标签: