GVKun编程网logo

POST json字典($post json)

13

在本文中,我们将给您介绍关于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)

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字符串生成对象

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数据

golang beego接受post json字符串解析返回JSON数据

在 API 的开发中,我们经常会用到JSONXML来作为数据交互的格式,如何在 beego 中获取 Request Body 里的 JSON 或 XML 的数据呢?

  1. 在配置文件里设置copyrequestbody = true
  2. 在 Controller 中
  3. json 用来解析JSON的包
  4. 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字符串-

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字典解析

ios – SwiftyJSON字典解析

我试图使用 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字典解析等相关知识的信息别忘了在本站进行查找喔。

本文标签: