我创建客户端和服务器,然后在添加客户端类的序列化的目的,然后简单地刚走到客户在我的硬盘驱动器的文件夹,并将其粘贴到服务器correponding位置,都classname.class和classname.java分别.
它在我自己的笔记本电脑上运行良好但是当我想继续我在其他系统上工作时,当我打开项目文件夹并在客户端尝试连接到服务器后,出现以下错误:
Exception in thread "main" java.io.InvalidClassException: projectname.clasname; local class incompatible: stream classdesc serialVersionUID = -6009442170907349114, local class serialVersionUID = 6529685098267757690
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?是因为我使用较旧版本的IDE运行程序?
import java.io.Serializable;
import java.net.URL;
public class KeyAdr implements Serializable {
private static final long serialVersionUID = 6529685098267757690L;
public URL adr;
public String key;
}
Run Code Online (Sandbox Code Playgroud) 这是我的Java代码,用于反序列化,我试图将json字符串转换为java对象.这样做我使用了以下代码:
package ex1jackson;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class Ex1jackson {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
String userDataJSON = "[{\"id\":\"value11\",\"name\": \"value12\",\"qty\":\"value13\"},"
+ "{\"id\": \"value21\",\"name\":\"value22\",\"qty\": \"value23\"}]";
product userFromJSON = mapper.readValue(userDataJSON, product.class);
System.out.println(userFromJSON);
} catch (JsonGenerationException e) {
System.out.println(e);
} catch (JsonMappingException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
和我的product.java类
package ex1jackson;
public class product
{
private String id;
private String name;
private String qty; …Run Code Online (Sandbox Code Playgroud) 这看起来很简单,我必须过度思考它.
TL; DR;
如何修改下面的代码以返回包含在字符串中的json对象而不是恰好包含json的字符串?
public ActionResult Test()
{
var json_string = "{ success: \"true\" }";
return Json(json_string, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
此代码返回包含json的字符串文字:
"{ success: "true" }"
Run Code Online (Sandbox Code Playgroud)
但是,我希望它返回字符串中包含的json:
{ success: "true" }
Run Code Online (Sandbox Code Playgroud)
版本略长
我正在尝试快速创建一些外部api调用的原型,并且只想通过我的"api"将这些结果作为现在的假响应传递.json对象非常重要 - 大约10,000"行"或90KB.我不想为这个json响应的所有内容创建一个强类型对象,因此我可以通过反序列化器运行它 - 所以这样就完成了.
所以我控制器的基本逻辑是:
非常感谢任何帮助......心灵正在融化.
嗨我正在使用Javascript创建一个带有键和一个值的对象数组,使用以下代码.
ValuesArray.push({ key: $(this).attr('someattribute'), value: $(this).val() });
Run Code Online (Sandbox Code Playgroud)
结果我有这样的对象数组:
key:29; value: 'Country'
Key:12; value: '4,3,5'
Run Code Online (Sandbox Code Playgroud)
当我试图对它进行字符串化并在帖子中发送JSON时,我有一个错误的格式化JSON与\和"在我不想要的地方,所以当我尝试在C#的代码隐藏中使用JSON作为JObject时,我遇到了麻烦如何使用stringify创建干净的JSON
var jObject = JSON.stringify(ValuesArray);
Run Code Online (Sandbox Code Playgroud)
我的JSON现在哪个错了是:
{
"JObject": "[{\"key\":\"29\",\"value\":\"Country\"}, {\"key\":\"30\",\"value\":\"4,3,5\"}]"
}
Run Code Online (Sandbox Code Playgroud)
我想有一个像这样的JSON对象
{
"JObject": [{"key":"29","value":"Country"},{"key":"30","value":"4,3,5"}]
}
Run Code Online (Sandbox Code Playgroud)
没有围绕[]和字符的引号\
任何好主意来解决它.
谢谢
更详细的说明我如何将JSON发送到我的API,这就是我将JSON发送到我的Web API的方式:
function PostAPIRequest(address) {
var jObject = JSON.stringify(ValuesArray);
var responseJson = null;
$.ajax({
url: address,
type: 'POST',
dataType: 'json',
data: { JObject: jObject },
success: function (data) {
responseJson = data
ProcessDataResponse(responseJson);
//TODO: REFRESH THE DATA GRID
},
error: function (xhr, ajaxOptions, thrownError) …Run Code Online (Sandbox Code Playgroud) 我有一个基本的post操作,适用于单个对象RecordIem.我想做的是做同样的操作,但是通过使用相同的格式发布一系列请求来批量操作.
例如:
public HttpResponseMessage Post(RecordItem request)
{
var recordItems = _recorder.RecordItem(request);
return Request.CreateResponse(HttpStatusCode.OK, recordItems);
}
Run Code Online (Sandbox Code Playgroud)
当我发布Json时:
{
Id : "7UP24fVkGOxSjrcclghe_mP2-po",
System : 1,
Environment : "Production"
}
Run Code Online (Sandbox Code Playgroud)
一切正常.我想发布Json类似于:
{
Id : "7UP24fVkGOxSjrcclghe_mP2-po",
System : 1,
Environment : "Production"
},
{
Id : "ClPE188H4TeD2LbQPeV_EzCsKVM",
System : 1,
Environment : "Production",
Label : "RestTest1"
},
{
Id : "SAWTMJzm-_AFqoNw70-gLeUzB4k",
System : 1,
Environment : "Production"
}
Run Code Online (Sandbox Code Playgroud)
并有一个类似于下面的方法选择这个:
public HttpResponseMessage Post(RecordItem[] request)
{
var recordItems = _recorder.RecordItems(request);
return Request.CreateResponse(HttpStatusCode.OK, recordItems);
} …Run Code Online (Sandbox Code Playgroud) 最好的方法是获取函数的表示(如果它可以以某种方式恢复).出于效率原因,优选二进制序列化.
我认为有一种方法可以在Clean中实现,因为实现iTask是不可能的,因为当服务器再次运行时,依赖于任务(以及其他功能)可以保存并继续.
这对于分布式haskell计算必不可少.
我不打算在运行时解析haskell代码,如下所述:Haskell中的函数序列化.我还需要序列化而不仅仅是反序列化.
我有一个类型FooObject,我有一个从FooObject实例序列化的JSON文件.现在我想用来ConvertFrom-Json将JSON文件加载到内存并将命令的输出转换为FooObject对象,然后在cmdlet中使用新对象,该cmdlet Set-Bar仅接受FooObject作为参数类型.
但我注意到输出类型ConvertFrom-Json是PSCustomObject和我没有找到任何转换PSCustomObject方式FooObject.
我正在尝试将groovy地图保存到文件中.我当前的尝试是将字符串表示写出来然后再读回来并evaluate在我准备好再次使用它时调用它来重新创建地图.
我遇到的问题是toString()地图的方法从元素的值中删除了重要的引号.当我的代码调用evaluate时,它会抱怨一个未知的标识符.
此代码演示了此问题:
m = [a: 123, b: 'test']
print "orig: $m\n"
s = m.toString()
print " str: $s\n"
m2 = evaluate(s)
print " new: ${m2}\n"
Run Code Online (Sandbox Code Playgroud)
前两个打印语句几乎可以工作 - 但是关键值的引用b已经消失了.[a: 123, b: 'test']它表明,而不是显示[a: 123, b: test].
此时损坏已经完成.当evaluate调用尝试评估test为标识符而不是字符串时,调用会阻塞.
所以,我的具体问题:
我想知道是否有办法配置SignalR,以便集线器中的客户端功能使用驼峰大小写返回对象.
谢谢.
只有子类实现了Serializable接口.
import java.io.*;
public class NewClass1{
private int i;
NewClass1(){
i=10;
}
int getVal() {
return i;
}
void setVal(int i) {
this.i=i;
}
}
class MyClass extends NewClass1 implements Serializable{
private String s;
private NewClass1 n;
MyClass(String s) {
this.s = s;
setVal(20);
}
public String toString() {
return s + " " + getVal();
}
public static void main(String args[]) {
MyClass m = new MyClass("Serial");
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("serial.txt"));
oos.writeObject(m); …Run Code Online (Sandbox Code Playgroud) java inheritance serialization deserialization notserializableexception
deserialization ×10
json ×4
java ×3
c# ×2
arrays ×1
asp.net-mvc ×1
distributed ×1
groovy ×1
haskell ×1
inheritance ×1
jackson ×1
javascript ×1
json.net ×1
object ×1
powershell ×1
signalr ×1