我正在尝试使用JSON字符串在数据库中执行INSERT。我正在使用AngularJS和Coldfusion来做到这一点。
感谢我检索数据的表单,我在服务(控制器)中创建了一个对象,感谢工厂我做了一个$ http.post。我的问题涉及发送给它的字符串:字符串包含特殊字符(例如“&”,我不知道如何处理这类问题。
这里是发送字符串的示例:
jsStruct={"LASTNAME":"Nämé","FIRSTN%a£öME":"TestFirstName","PHONENUMBER":48484488,"EMAIL":"tes.test@test.test","COMPANY":"Test & Comp"}
我的控制器:
app.controller('ctrlAddContacts', function ($scope, ContactService){
// WHEN SUBMITTING THE FORM -> SEND THE DATA STRING
$scope.submitForm = function(contact){
if($scope.ContactForm.$valid){
// CALL THE FACTORY -> SEND THE DATA STRING
ContactService.addNewPerson(contact).success(function(Person){
$scope.ContactForm.$setPristine();
$scope.contact= Person;
});
}
}
});
我的工厂:
app.factory('ContactService', function($http){
var factory={};
factory.addNewPerson=function(objContact){
return $http.post('http://myapp/contacts.cfc?method=addNewPerson&jsStruct=' + JSON.stringify(objContact))
};
return factory;
})
在我的Coldfusion组件“contacts.cfc”中:
<cffunction name="addNewPerson" access="remote" returnformat="JSON" output="no">
<cfargument name="jsStruct" type="string" required="true">
<cfset var cfStruct=DeserializeJSON(jsStruct)>
..................
</cffunction>
我在服务器上收到此错误,因为在我的字符串中有“COMPANY”:“Test&amp; Comp”:
JSON parsing failure: Unexpected end of JSON string
请问你帮我解决这个问题,防止Coldfusion和Oracle使用的特殊字符为&amp;,#,',“和其他人?
提前谢谢。
答案 0 :(得分:0)
我刚试过解析你的JSON。它对我有用。我想服务器端使用的 JSON解析器不支持特殊字符。
var jsStruct={"LASTNAME":"Nämé","FIRSTN%a£öME":"TestFirstName","PHONENUMBER":48484488,"EMAIL":"tes.test@test.test","COMPANY":"Test & Comp"};
var parsedJSON = JSON.parse(JSON.stringify(jsStruct));
console.log(parsedJSON,"parsedJSON")
编辑1:
根据您的错误消息:JSON解析失败:JSON字符串的意外结束
您正在尝试将字符串解析为JSON,而字符串不是JSON。错误不适用于特殊字符。
答案 1 :(得分:-1)
事实上我们要求DBA更改DSN以使用不同的驱动程序并且问题已经解决